屬性存取子不能在 'NotOverridable' 屬性中宣告為 '<accessmodifier>'

更新:2007 年 11 月

NotOverridable 屬性中的 Get 陳述式Set 陳述式 (Visual Basic) 包含 Private 關鍵字。

下列幾行原因會說明為何無法將 NotOverridable 和 Private 結合至 Property 陳述式中:

  1. 不會覆寫基底類別 (Base Class) 屬性或程序的屬性或程序,會有 NotOverridable 的預設值。

  2. 不過,衍生類別 (Derived Class) 中將基底類別屬性或程序覆寫掉的屬性或程序,會有 Overridable 的預設值。若要終止覆寫階層,您可以將它宣告為 NotOverridable。這是唯一可以使用 NotOverridable 的內容。也就是說,只能將 NotOverridable 與 Overrides 搭配使用。

  3. 如果基底類別屬性或程序宣告為 Private (Visual Basic),則衍生類別無法加以存取,也就無法覆寫該屬性或程序。因此,您無法將 Private 與 Overridable 搭配使用。

  4. 若要覆寫屬性或程序,覆寫屬性或程序不僅要具有相同的簽章,也要有相同的存取層級。這表示覆寫屬性或程序無法指定 Private,因為可覆寫的屬性或程序無法指定 Private。

  5. 因為您只能在覆寫屬性或程序上指定 NotOverridable,所以無法與 Private 搭配使用。

同理,覆寫屬性的個別屬性程序 (Get 和 Set) 不得為 Private。

錯誤 ID:BC31106

若要更正這個錯誤

  • 移除 Get 或 Set 陳述式 (Statement) 中的 Private 關鍵字,或是移除 Property 陳述式中的 Overrides 和 NotOverridable 關鍵字。

請參閱

工作

HOW TO:宣告混合存取層級的屬性

概念

Property 程序

遮蔽和覆寫的差異