型 '<internaltypename>' のアクセスをアセンブリの外側に展開しているため、'<derivedtypename>' は <型> '<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 を公開することが可能になるからです。

Error ID: BC30922

このエラーを解決するには

  • クラスまたはインターフェイスのアクセス レベルを修正して、制限された型のアクセス レベルが派生型によって拡張されないようにします。

    または

  • アクセス レベルを修正できない場合は、基本クラスまたはインターフェイスを作成するとき、制限された型を型引数として使用しないでください。

参照

概念

継承の基本

Visual Basic でのアクセス レベル

Visual Basic におけるジェネリック型

参照

Inherits ステートメント

型リスト