TypeBuilder.MakeGenericType(Type[]) 方法

定義

用類型陣列的項目取代目前泛型類型定義的類型參數,並傳回產生的建構類型。

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[]

由類型組成的陣列,用來取代目前泛型類型定義的類型參數。

傳回

Type

Type,表示用 typeArguments 的項目取代目前泛型類型之類型參數所得到的建構類型。

例外狀況

目前類型不代表泛型類型的定義。 亦即, IsGenericTypeDefinition 傳回 false

typeArgumentsnull

-或- typeArguments 的項目是 null

typeArguments 的任何項目之 Module 屬性是 null

-或- typeArguments 的任何項目模組之 Assembly 屬性是 null

備註

當發出的程式碼需要從目前的泛型型別定義所建立的型別時,請使用這個方法。 CreateType MakeGenericTypeTypeBuilder 代表泛型型別定義的上呼叫方法之前,不需要呼叫方法。 如果目前的不 TypeBuilder 代表泛型型別的定義,就會擲回 InvalidOperationException

這個方法所傳回的物件會在發出的程式碼中做為已建立的泛型型別的預留位置。 它是衍生自之類別的實例 Type ,其功能有限。 尤其是:

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)

適用於