Type.GetNestedType メソッド

定義

現在の Type 内で入れ子になっている特定の型を取得します。

オーバーロード

GetNestedType(String, BindingFlags)

派生クラス内でオーバーライドされた場合、指定したバインディング制約を使用して、指定されている入れ子にされた型を検索します。

GetNestedType(String)

指定した名前を持ち、入れ子にされたパブリックな型を検索します。

GetNestedType(String, BindingFlags)

派生クラス内でオーバーライドされた場合、指定したバインディング制約を使用して、指定されている入れ子にされた型を検索します。

public:
 abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public abstract Type? GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
public abstract Type GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type

パラメーター

name
String

取得対象の入れ子にされた型の名前を格納している文字列。

bindingAttr
BindingFlags

検索を実施する方法を指定する列挙値のビットごとの組み合わせ。

または null を返す場合は Default

戻り値

Type

指定した要件と一致し、入れ子にされた型が存在する場合は、その型を表すオブジェクト。それ以外の場合は null

実装

例外

namenullです。

注釈

入れ子になったクラスの単純な名前を使用します name。 外部クラスの名前で修飾しないでください。 ジェネリックの入れ子になったクラスの場合は、マングルされた名前 (つまり、グレーブ アクセントとジェネリック パラメーターの数) を追加します。 たとえば、文字列 "Inner`1" を使用して、ジェネリックの入れ子になったクラス Inner<T> (Inner(Of T)Visual Basic) を取得します。 型パラメーターには言語固有の構文を含めないでください。

BindingFlags のフィルター フラグを使用して、検索に含める入れ子になった型を定義できます。

  • 戻り値を取得するには、どちらかBindingFlags.PublicBindingFlags.NonPublicを指定する必要があります。

  • パブリックの入れ子になった型を検索に含むように指定 BindingFlags.Public します。

  • 検索に、パブリックでない入れ子になった型 (プライベート、内部、および保護された入れ子になった型) を含むように指定 BindingFlags.NonPublic します。

このメソッドは、現在の型の入れ子になった型のみを返します。 現在の型の基底クラスは検索されません。 基底クラスで入れ子になっている型を見つけるには、各レベルで呼び出して継承階層を歩く GetNestedType 必要があります。

BindingFlags.InstanceBindingFlags.Static は無視されます。

フラグのみを指定して、またはフラグのみを BindingFlags.Public 指定してこのメソッドを BindingFlags.NonPublic 呼び出すと、指定した入れ子になった型が返され、他のフラグは必要ありません。

詳細については、「System.Reflection.BindingFlags」を参照してください。

現在 Type のメソッドがジェネリック型またはジェネリック メソッドの定義で型パラメーターを表す場合、このメソッドはクラス制約の入れ子になった型を検索します。

入れ子になった型がジェネリックの場合、このメソッドはジェネリック型の定義を返します。 これは、外側のジェネリック型が閉じた構築型である場合でも当てはまります。

注意

現在Typeの型が C#、Visual Basic、または C++ で定義されているジェネリック型を表す場合、入れ子になった型は、独自のジェネリック パラメーターがない場合でもすべてジェネリックです。 これは、動的アセンブリで定義された入れ子になった型や 、Ilasm.exe (IL アセンブラー) を使用してコンパイルされた入れ子になった型に当てはまるとは限りません。

入れ子になったジェネリック型と、そのジェネリック型定義から入れ子になったジェネリック型を構築する方法については、次を参照してください MakeGenericType

こちらもご覧ください

適用対象

GetNestedType(String)

指定した名前を持ち、入れ子にされたパブリックな型を検索します。

public:
 Type ^ GetNestedType(System::String ^ name);
public:
 virtual Type ^ GetNestedType(System::String ^ name);
public Type? GetNestedType (string name);
public Type GetNestedType (string name);
member this.GetNestedType : string -> Type
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type

パラメーター

name
String

取得対象の入れ子にされた型の名前を格納している文字列。

戻り値

Type

存在する場合は、指定された名前を持つ入れ子にされたパブリックな型を表すオブジェクト。それ以外の場合は null

実装

例外

namenullです。

注釈

検索では name 大文字と小文字が区別されます。

入れ子になったクラスの単純な名前を使用します name。 外部クラスの名前で修飾しないでください。 ジェネリックの入れ子になったクラスの場合は、マングル名 (つまり、アクセント記号とジェネリック引数の数) を追加します。 たとえば、文字列 "Inner`1" を使用して、ジェネリックの入れ子になったクラス Inner<T> (Inner(Of T)Visual Basic) を取得します。 型パラメーターには言語固有の構文を含めないでください。

次の表は、型に反映するときにメソッドによって Get 返される基底クラスのメンバーを示しています。

メンバーの型 静的 非静的
コンストラクター いいえ いいえ
フィールド いいえ はい。 フィールドは常に名前と署名で非表示になります。
event 適用なし 一般的な型システムルールは、継承がプロパティを実装するメソッドの継承と同じであるという点です。 リフレクションは、プロパティを名前と署名による非表示として扱います。 以下の注 2 を参照してください。
メソッド いいえ はい。 メソッド (仮想と非仮想の両方) は、名前で非表示にすることも、名前と署名で非表示にすることもできます。
入れ子になった型 いいえ いいえ
プロパティ 適用なし 一般的な型システムルールは、継承がプロパティを実装するメソッドの継承と同じであるという点です。 リフレクションは、プロパティを名前と署名による非表示として扱います。 以下の注 2 を参照してください。
  1. 名前と署名による非表示では、カスタム修飾子、戻り値の型、パラメーター型、センチネル、アンマネージ呼び出し規則など、署名のすべての部分が考慮されます。 これはバイナリ比較です。

  2. リフレクションの場合、プロパティとイベントは名前と署名によって非表示になります。 基底クラスに get アクセサーと set アクセサーの両方を持つプロパティがあるが、派生クラスに get アクセサーのみが含まれている場合、派生クラス プロパティは基底クラス プロパティを非表示にし、基底クラスのセッターにアクセスすることはできません。

  3. カスタム属性は、共通型システムの一部ではありません。

現在 Type のメソッドがジェネリック型またはジェネリック メソッドの定義で型パラメーターを表す場合、このメソッドはクラス制約の入れ子になった型を検索します。

入れ子になった型がジェネリックの場合、このメソッドはジェネリック型の定義を返します。 これは、外側のジェネリック型が閉じた構築型である場合でも当てはまります。

注意

現在Typeの型が C#、Visual Basic、または C++ で定義されているジェネリック型を表す場合、入れ子になった型は、独自のジェネリック パラメーターがない場合でもすべてジェネリックです。 これは、動的アセンブリで定義された入れ子になった型や 、Ilasm.exe (IL アセンブラー) を使用してコンパイルされた入れ子になった型に当てはまるとは限りません。

入れ子になったジェネリック型と、そのジェネリック型定義から入れ子になったジェネリック型を構築する方法については、次を参照してください MakeGenericType

こちらもご覧ください

適用対象