'<derivedtypename>' 無法繼承自 <type> '<constructedbasetypename>',因為它會在組件外展開型別 '<internaltypename>' 的存取

更新:2007 年 11 月

衍生類別 (Derived Class) 或介面會嘗試展開受限制型別的存取層級,方法為將它當做基底類別 (Base Class) 或介面的型別引數。

下列程式碼會產生此錯誤。

Public Class baseClass(Of t)
End Class
Public Class derivedClass
    Inherits baseClass(Of restrictedStructure)
End Class
Friend Structure restrictedStructure
    Dim firstMember As Integer
End Structure

組件 (Assembly) 外的程式碼不可以存取 restrictedStructure。不過,可以從任何參考的程式碼存取 derivedClass。因此,如果 derivedClass 使用 restrictedStructure 做為型別引數,就無法繼承 baseClass,因為這會將 restrictedStructure 公開 (Expose) 給任何組件中的程式碼。

錯誤 ID:BC30922

若要更正這個錯誤

  • 調整類別或介面的存取層級,使衍生型別無法展開受限制型別的存取層級。

    -或-

  • 如果您無法調整存取層級,請勿在建構基底類別或介面時使用受限制型別做為型別引數。

請參閱

概念

繼承基本概念

Visual Basic 中的存取層級

Visual Basic 中的泛型型別

參考

Inherits 陳述式

型別清單