TypeBuilder.MakeGenericType メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As TypeBuilder Dim typeArguments As Type() Dim returnValue As Type returnValue = instance.MakeGenericType(typeArguments)
戻り値
現在のジェネリック型の型パラメータを typeArguments の要素に置き換えることによって作成された、構築された型を表す Type。

例外の種類 | 条件 |
---|---|
InvalidOperationException | 現在の型はジェネリック型の定義を表していません。つまり、IsGenericTypeDefinition は false を返します。 |
ArgumentNullException | typeArguments が null 参照 (Visual Basic では Nothing) です。 または typeArguments の要素が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | typeArguments の要素の数が現在のジェネリック型定義の型パラメータの数と同じではありません。 または |

出力するコードで、現在のジェネリック型の定義から構築された型が必要な場合に、このメソッドを使用します。ジェネリック型の定義を表す TypeBuilder に対して MakeGenericType メソッドを呼び出す前に、CreateType メソッドを呼び出す必要はありません。現在の TypeBuilder がジェネリック型の定義を表していない場合、InvalidOperationException がスローされます。
出力されるコードでは、このメソッドによって返されたオブジェクトが、構築ジェネリック型のプレースホルダとして機能します。これは Type から派生したクラスのインスタンスであり、機能に制限があります。特に次の点に注意してください。
-
構築ジェネリック型のメソッド、フィールド、およびコンストラクタを取得するには、GetMethod(Type,MethodInfo)、GetField(Type,FieldInfo)、GetConstructor(Type,ConstructorInfo) の各メソッド オーバーロードを使用します。
-
同じ構築された型を表す 2 つのインスタンスを比較しても等価とは見なされません。たとえば、次のコードでは、t1.Equals(t2) が false を返します。
Dim t1 As Type = tbldr.MakeGenericType(GetType(String)) Dim t2 As Type = tbldr.MakeGenericType(GetType(String)) Dim result As Boolean = t1.Equals(t2)
Type t1 = tbldr.MakeGenericType(typeof(string)); Type t2 = tbldr.MakeGenericType(typeof(string)); bool result = t1.Equals(t2);
Type^ t1 = tbldr->MakeGenericType(String::typeid); Type^ t2 = tbldr->MakeGenericType(String::typeid); bool result = t1->Equals(t2);

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からTypeBuilder.MakeGenericType メソッドを検索する場合は、下記のリンクをクリックしてください。

- TypeBuilder.MakeGenericType メソッドのページへのリンク