英語で読む

次の方法で共有


Type.GetNestedType メソッド

定義

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

オーバーロード

GetNestedType(String)

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

GetNestedType(String, BindingFlags)

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

GetNestedType(String)

ソース:
Type.cs
ソース:
Type.cs
ソース:
Type.cs

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

C#
public Type? GetNestedType (string name);
C#
public Type GetNestedType (string name);

パラメーター

name
String

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

戻り値

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

実装

例外

namenullです。

注釈

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

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

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

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

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

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

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

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

注意

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

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetNestedType(String, BindingFlags)

ソース:
Type.cs
ソース:
Type.cs
ソース:
Type.cs

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

C#
public abstract Type? GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
C#
public abstract Type GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);

パラメーター

name
String

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

bindingAttr
BindingFlags

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

または

null を返す場合は Default

戻り値

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

実装

例外

namenullです。

注釈

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

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

  • 戻り値を取得するには、 または BindingFlags.NonPublic のいずれかをBindingFlags.Public指定する必要があります。

  • 検索にパブリックの入れ子になった型を含めるには、 を指定 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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1