Type.IsGenericParameter, propriété
Assembly : mscorlib (dans mscorlib.dll)
Les objets Type qui représentent des paramètres de type générique peuvent être obtenus en appelant la méthode GetGenericArguments d'un objet Type qui représente la définition d'un type générique, ou la méthode GetGenericArguments d'un objet MethodInfo qui représente la définition d'une méthode générique.
-
Pour la définition d'un type ou d'une méthode générique, la propriété IsGenericParameter retourne la valeur true pour chaque élément du tableau résultant.
-
Pour un type construit fermé ou une méthode, la propriété IsGenericParameter retourne la valeur false pour chaque élément du tableau retourné par la méthode GetGenericArguments.
-
Pour un type construit ouvert ou une méthode, certains éléments du tableau peuvent être des types spécifiques et d'autres des paramètres de type. IsGenericParameter retourne la valeur false pour les types et la valeur true pour les paramètres de type. L'exemple de code pour la propriété ContainsGenericParameters montre une classe générique avec un mélange de types et de paramètres de type.
Pour obtenir la liste des conditions invariables des termes utilisés dans une réflexion générique, consultez les notes sur la propriété IsGenericType.
L'exemple suivant utilise la propriété IsGenericParameter pour tester les paramètres de type générique dans un type générique.
if (t.IsGenericType) { // If this is a generic type, display the type arguments. // Type[] typeArguments = t.GetGenericArguments(); Console.WriteLine("\tList type arguments ({0}):", typeArguments.Length); foreach (Type tParam in typeArguments) { // If this is a type parameter, display its // position. // if (tParam.IsGenericParameter) { Console.WriteLine("\t\t{0}\t(unassigned - parameter position {1})", tParam, tParam.GenericParameterPosition); } else { Console.WriteLine("\t\t{0}", tParam); } } }
if (t.get_IsGenericType()) {
// If this is a generic type, display the type arguments.
Type typeArguments[] = t.GetGenericArguments();
Console.WriteLine("\tList type arguments ({0}):",
(Int32)typeArguments.get_Length());
for (int iCtr = 0; iCtr < typeArguments.get_Length(); iCtr++) {
Type tParam = typeArguments[iCtr];
// If this is a type parameter, display its
// position.
if (tParam.get_IsGenericParameter()) {
Console.WriteLine("\t\t{0}\t(unassigned - parameter "
+ "position {1})", tParam,
(Int32)tParam.get_GenericParameterPosition());
}
else {
Console.WriteLine("\t\t{0}", tParam);
}
}
}
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Référence
Type, classeMembres Type
System, espace de noms
Type.GenericParameterPosition, propriété
GetGenericArguments
GetGenericParameterConstraints
Type.GenericParameterAttributes, propriété
Autres ressources
Réflexion et types génériquesComment : examiner et instancier des types génériques avec la réflexion