“<derivedtypename>”将对类型“<internaltypename>”的访问扩展到程序集的外部,因此无法从 <type>“<constructedbasetypename>”继承

更新:2007 年 11 月

派生的类或接口尝试通过将受限类型用作基类或基接口的类型参数来扩展该类型的访问级别。

下面的代码可能会生成此错误。

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

不允许程序集外部的代码访问 restrictedStructure。但是,可从任何可以引用 derivedClass 的代码中访问该类。因此,如果 derivedClass 将 restrictedStructure 用作类型参数,则它不能继承 baseClass,原因是这样可能会向任何程序集中的代码公开 restrictedStructure。

**错误 ID:**BC30922

更正此错误

  • 调整类或接口的访问级别,使派生类型不会扩展受限类型的访问级别。

    - 或 -

  • 如果无法调整访问级别,则在构造基类或基接口时请勿将受限类型用作类型参数。

请参见

概念

继承的基础知识

Visual Basic 中的访问级别

Visual Basic 中的泛型类型

参考

Inherits 语句

类型列表