TypeBuilder.MakeGenericType(Type[]) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
型の配列の要素を現在のジェネリック型定義の型パラメーターで置き換え、結果の構築型を返します。
public:
override Type ^ MakeGenericType(... cli::array <Type ^> ^ typeArguments);
public override Type MakeGenericType (params Type[] typeArguments);
override this.MakeGenericType : Type[] -> Type
Public Overrides Function MakeGenericType (ParamArray typeArguments As Type()) As Type
パラメーター
- typeArguments
- Type[]
現在のジェネリック型定義の型パラメーターに置き換えられる型の配列。
戻り値
typeArguments
の要素を現在のジェネリック型の型パラメーターで置き換えることによって作られる構築型を表す Type。
例外
現在の型はジェネリック型の定義を表していません。 つまり、IsGenericTypeDefinition は false
を返します。
typeArguments
のどの要素の Module プロパティも null
です。
- または -
typeArguments
のどの要素のモジュールの Assembly プロパティも null
です。
注釈
出力されたコードで、現在のジェネリック型定義から構築された型が必要な場合は、このメソッドを使用します。 ジェネリック型定義を表す で メソッドをCreateType呼び出す前にTypeBuilder、 メソッドを呼び出MakeGenericTypeす必要はありません。 現在 TypeBuilder の がジェネリック型の定義を表していない場合は、 InvalidOperationException がスローされます。
このメソッドによって返される オブジェクトは、出力されたコードで構築されたジェネリック型のプレースホルダーとして機能します。 これは、機能が制限されている から Type 派生したクラスのインスタンスです。 特に次の点に違いがあります。
これらの構築されたジェネリック型のメソッド、フィールド、コンストラクターを取得するには、および GetConstructor(Type, ConstructorInfo) メソッドのGetMethod(Type, MethodInfo)GetField(Type, FieldInfo)オーバーロードを使用します。
同じ構築された型を表す 2 つのインスタンスは、等しいと比較されません。 たとえば、次のコード
t1.Equals(t2)
では を返しますfalse
。
Type^ t1 = tbldr->MakeGenericType(String::typeid);
Type^ t2 = tbldr->MakeGenericType(String::typeid);
bool result = t1->Equals(t2);
Type t1 = tbldr.MakeGenericType(typeof(string));
Type t2 = tbldr.MakeGenericType(typeof(string));
bool result = t1.Equals(t2);
Dim t1 As Type = tbldr.MakeGenericType(GetType(String))
Dim t2 As Type = tbldr.MakeGenericType(GetType(String))
Dim result As Boolean = t1.Equals(t2)
適用対象
.NET