Shadows (Visual Basic)

指定宣告的程式設計項目會重新宣告並隱藏基底類別中相同名稱的項目,或多載項目集。

備註

遮蔽 (也稱為「依名稱隱藏」) 的主要目的是保留類別成員的定義。 基底類別可能會經歷變更,該變更會使用與已定義的相同名稱來建立項目。 若有上述情形發生,Shadows 修飾詞 (Modifier) 會透過類別,強制參考解析為您所定義的成員,而非解析為新的基底類別項目。

遮蔽和覆寫都會重新定義繼承的項目,但這兩個方法之間有顯著的差異。 如需詳細資訊,請參閱Visual Basic 中的遮蔽功能

規則

  • **宣告內容:**您只能在類別層級使用 Shadows。 這表示 Shadows 項目的宣告內容必須是類別,而不可以是原始程式檔 (Source File)、命名空間 (Namespace)、介面、模組、結構或程序。

    在單一宣告陳述式 (Declaration Statement) 中只可宣告一個主導遮蔽項目 (Shadowing Element)。

  • **組合的修飾詞:**您無法在同一個宣告中同時指定 Shadows 與 Overloads、Overrides 或 Static。

  • 元素型別:您可以用任意一種宣告項目遮蔽其他宣告項目。 若以其他屬性或程序遮蔽屬性或程序,參數和傳回型別就不必符合基底類別屬性或程序中的參數和傳回型別。

  • 存取基底類別中的受遮蔽項目 (Shadowed Element) 通常無法從遮蔽它的衍生類別中取得。 但需考量下列情形。

    • 如果主導遮蔽項目無法從參考它的程式碼中存取,則參考會解析為受遮蔽項目。 例如,如果 Private 項目會遮蔽基底類別項目,則無權存取 Private 項目的程式碼會改為存取基底類別項目。

    • 若有遮蔽項目,則仍可透過以基底類別型別宣告的物件,存取遮蔽的項目。 您也可透過 MyBase 進行存取。

Shadows 修飾詞可用於以下內容中:

Class 陳述式

Const 陳述式

Declare 陳述式

Delegate 陳述式

Dim 陳述式

Enum 陳述式

Event 陳述式

Function 陳述式

Interface 陳述式

Property 陳述式

Structure 陳述式

Sub 陳述式

請參閱

參考

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MustOverride (Visual Basic)

NotOverridable (Visual Basic)

Overloads (Visual Basic)

Overridable (Visual Basic)

Overrides (Visual Basic)

概念

Visual Basic 中的 Me、My、MyBase 和 MyClass

繼承基本概念 (Visual Basic)

Visual Basic 中的遮蔽功能