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,表示用 typeArguments 的項目取代目前泛型類型之類型參數所得到的建構類型。

例外狀況

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

typeArgumentsnull

-或-

typeArguments 的項目是 null

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

-或-

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

備註

當您發出的程式代碼需要從目前的泛型型別定義建構的類型時,請使用這個方法。 在代表泛型型別定義的 上TypeBuilder呼叫 方法之前,不需要先呼叫 CreateTypeMakeGenericType 方法。 如果目前的 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)

適用於