TypeBuilder.MakeGenericType(Type[]) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Substitue les éléments d’un tableau de types aux paramètres de type de la définition du type générique actuel et retourne le type construit résultant.
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
Paramètres
- typeArguments
- Type[]
Tableau de types à substituer aux paramètres de type de la définition du type générique actuel.
Retours
Type représentant le type construit formé en substituant les éléments de typeArguments
pour les paramètres de type du type générique actuel.
Exceptions
Le type actuel ne représente pas la définition d’un type générique. Autrement dit, IsGenericTypeDefinition retourne false
.
La propriété Module de n’importe quel élément de typeArguments
est null
.
- ou -
La propriété Assembly du module de n’importe quel élément de typeArguments
est null
.
Remarques
Utilisez cette méthode lorsque votre code émis nécessite un type construit à partir de la définition de type générique actuelle. Il n’est pas nécessaire d’appeler la CreateType méthode avant d’appeler la MakeGenericType méthode sur un TypeBuilder qui représente une définition de type générique. Si le actuel TypeBuilder ne représente pas la définition d’un type générique, une InvalidOperationException est levée.
L’objet retourné par cette méthode fonctionne comme un espace réservé pour un type générique construit dans votre code émis. Il s’agit d’un instance d’une classe dérivée de Type qui a des fonctionnalités limitées. En particulier :
Pour obtenir des méthodes, des champs et des constructeurs pour ces types génériques construits, utilisez les GetMethod(Type, MethodInfo)surcharges de méthode , GetField(Type, FieldInfo)et GetConstructor(Type, ConstructorInfo) .
Deux instances qui représentent le même type construit ne sont pas égales. Par exemple, dans le code
t1.Equals(t2)
suivant retournefalse
:
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)