Type.GetNestedType メソッド

定義

現在の Type 内で入れ子になっている特定の型を取得します。Gets a specific type nested within the current Type.

オーバーロード

GetNestedType(String, BindingFlags)

派生クラス内でオーバーライドされた場合、指定したバインディング制約を使用して、指定されている入れ子にされた型を検索します。When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

GetNestedType(String)

指定した名前を持ち、入れ子にされたパブリックな型を検索します。Searches for the public nested type with the specified name.

GetNestedType(String, BindingFlags)

派生クラス内でオーバーライドされた場合、指定したバインディング制約を使用して、指定されている入れ子にされた型を検索します。When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

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

取得対象の入れ子にされた型の名前を格納している文字列。The string containing the name of the nested type to get.

bindingAttr
BindingFlags

検索を実施する方法を指定する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that specify how the search is conducted.

- または --or- null を返す場合は DefaultDefault to return null.

戻り値

Type

指定した要件と一致し、入れ子にされた型が存在する場合は、その型を表すオブジェクト。それ以外の場合は nullAn object representing the nested type that matches the specified requirements, if found; otherwise, null.

実装

例外

namenullです。name is null.

注釈

には、入れ子になったクラスの簡易名を使用し name ます。Use the simple name of the nested class for name. 外側のクラスの名前で修飾しないでください。Do not qualify it with the name of the outer class. 入れ子になったジェネリッククラスの場合は、破損した名前を使用します。つまり、アクサンアクセントとジェネリックパラメーターの数を追加します。For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic parameters. たとえば、"Inner 1" という文字列を使用して、 ` 入れ子になったジェネリッククラス Inner<T> (Visual Basic) を取得し Inner(Of T) ます。For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). 型パラメーターには言語固有の構文を含めないでください。Do not include language-specific syntax for type parameters.

BindingFlags検索に含める入れ子にされた型を定義するには、次のフィルターフラグを使用できます。The following BindingFlags filter flags can be used to define which nested types to include in the search:

このメソッドは、現在の型の入れ子にされた型のみを返します。This method returns only the nested types of the current type. 現在の型の基底クラスは検索されません。It does not search the base classes of the current type. 基底クラスで入れ子になっている型を見つけるには、継承階層について説明し、 GetNestedType 各レベルでを呼び出します。To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.

BindingFlags.InstanceBindingFlags.Static は無視されます。BindingFlags.Instance and BindingFlags.Static are ignored.

フラグだけを指定して、またはフラグだけを指定してこのメソッドを呼び出す BindingFlags.Public BindingFlags.NonPublic と、指定した入れ子になった型が返され、他のフラグは必要ありません。Calling this method with only the BindingFlags.Public flag or only the BindingFlags.NonPublic flag will return the specified nested types and does not require any other flags.

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

現在のが Type ジェネリック型またはジェネリックメソッドの定義の型パラメーターを表している場合、このメソッドは、クラス制約の入れ子にされた型を検索します。If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

入れ子にされた型がジェネリックの場合、このメソッドはそのジェネリック型定義を返します。If a nested type is generic, this method returns its generic type definition. これは、外側のジェネリック型が構築されたクローズ型である場合にも当てはまります。This is true even if the enclosing generic type is a closed constructed type.

注意

現在のが Type C#、Visual Basic、または C++ で定義されたジェネリック型を表している場合、その入れ子になった型は、独自のジェネリックパラメーターがない場合でも、すべてジェネリックになります。If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. これは、動的アセンブリで定義された、または Ilasm.exe (IL アセンブラー)でコンパイルされた入れ子になった型に必ずしも当てはまりません。This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

入れ子になったジェネリック型の詳細、およびジェネリック型定義から入れ子になったジェネリック型を構築する方法については、「」を参照してください MakeGenericTypeFor information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

こちらもご覧ください

適用対象

GetNestedType(String)

指定した名前を持ち、入れ子にされたパブリックな型を検索します。Searches for the public nested type with the specified name.

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

取得対象の入れ子にされた型の名前を格納している文字列。The string containing the name of the nested type to get.

戻り値

Type

存在する場合は、指定された名前を持つ入れ子にされたパブリックな型を表すオブジェクト。それ以外の場合は nullAn object representing the public nested type with the specified name, if found; otherwise, null.

実装

例外

namenullです。name is null.

注釈

の検索で name は、大文字と小文字が区別されます。The search for name is case-sensitive.

には、入れ子になったクラスの簡易名を使用し name ます。Use the simple name of the nested class for name. 外側のクラスの名前で修飾しないでください。Do not qualify it with the name of the outer class. 入れ子になったジェネリッククラスの場合は、破損した名前を使用します。つまり、アクサングラーブと汎用引数の数を追加します。For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic arguments. たとえば、"Inner 1" という文字列を使用して、 ` 入れ子になったジェネリッククラス Inner<T> (Visual Basic) を取得し Inner(Of T) ます。For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). 型パラメーターには言語固有の構文を含めないでください。Do not include language-specific syntax for type parameters.

次の表は、型に対してリフレクションを行うときに、メソッドによって返される基底クラスのメンバーを示してい Get ます。The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

メンバーの型Member Type 静的Static 非静的Non-Static
コンストラクターConstructor いいえNo いいえNo
フィールドField いいえNo はい。Yes. フィールドは、常に名前と署名で隠ぺいされます。A field is always hide-by-name-and-signature.
eventEvent 適用なしNot applicable 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。The common type system rule is that the inheritance is the same as that of the methods that implement the property. リフレクションは、プロパティを名前で隠す、署名として扱います。Reflection treats properties as hide-by-name-and-signature. 下記のメモ2を参照してください。See note 2 below.
メソッドMethod いいえNo はい。Yes. メソッド (仮想と非仮想の両方) は、非表示にするか、名前と署名を隠すことができます。A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
入れ子にされた型Nested Type いいえNo いいえNo
プロパティProperty 適用なしNot applicable 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。The common type system rule is that the inheritance is the same as that of the methods that implement the property. リフレクションは、プロパティを名前で隠す、署名として扱います。Reflection treats properties as hide-by-name-and-signature. 下記のメモ2を参照してください。See note 2 below.
  1. 名前による隠ぺいと署名では、カスタム修飾子、戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約を含む、シグネチャのすべての部分が考慮されます。Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. これは、バイナリ比較です。This is a binary comparison.

  2. リフレクションの場合、プロパティとイベントは、名前とシグネチャが隠ぺいされます。For reflection, properties and events are hide-by-name-and-signature. 基底クラスに get と set の両方のアクセサーを持つプロパティがあり、派生クラスに get アクセサーのみがある場合、派生クラスのプロパティは基底クラスのプロパティを非表示にします。基底クラスの setter にアクセスすることはできません。If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. カスタム属性は、共通型システムの一部ではありません。Custom attributes are not part of the common type system.

現在のが Type ジェネリック型またはジェネリックメソッドの定義の型パラメーターを表している場合、このメソッドは、クラス制約の入れ子にされた型を検索します。If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

入れ子にされた型がジェネリックの場合、このメソッドはそのジェネリック型定義を返します。If a nested type is generic, this method returns its generic type definition. これは、外側のジェネリック型が構築されたクローズ型である場合にも当てはまります。This is true even if the enclosing generic type is a closed constructed type.

注意

現在のが Type C#、Visual Basic、または C++ で定義されたジェネリック型を表している場合、その入れ子になった型は、独自のジェネリックパラメーターがない場合でも、すべてジェネリックになります。If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. これは、動的アセンブリで定義された、または Ilasm.exe (IL アセンブラー)でコンパイルされた入れ子になった型に必ずしも当てはまりません。This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

入れ子になったジェネリック型の詳細、およびジェネリック型定義から入れ子になったジェネリック型を構築する方法については、「」を参照してください MakeGenericTypeFor information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

こちらもご覧ください

適用対象