Sdílet prostřednictvím


TypeBuilder.MakeGenericType(Type[]) Metoda

Definice

Nahradí prvky pole typů parametry typu aktuální definice obecného typu a vrátí výsledný vytvořený typ.

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

Parametry

typeArguments
Type[]

Pole typů, které mají být nahrazeny parametry typu aktuální definice obecného typu.

Návraty

A Type představující konstruovaný typ vytvořený nahrazením prvků z typeArguments parametry typu aktuálního obecného typu.

Výjimky

Aktuální typ nepředstavuje definici obecného typu. To znamená, IsGenericTypeDefinition že vrátí falsehodnotu .

typeArguments je null.

-nebo-

Libovolný prvek je typeArgumentsnull.

Vlastnost Module libovolného prvku je typeArgumentsnull.

-nebo-

Vlastnost Assembly modulu libovolného prvku je typeArgumentsnull.

Poznámky

Tuto metodu použijte, pokud váš vygenerovaný kód vyžaduje typ vytvořený z aktuální definice obecného typu. Není nutné volat metodu CreateType před voláním MakeGenericType metody na objektu TypeBuilder , který představuje definici obecného typu. Pokud aktuální TypeBuilder nepředstavuje definici obecného typu, InvalidOperationException je vyvolán .

Objekt vrácený touto metodou funguje jako zástupný symbol pro vytvořený obecný typ ve vašem generovaném kódu. Jedná se o instanci třídy odvozené z Type třídy, která má omezené možnosti. Zejména jde o toto:

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)

Platí pro