Type.IsGenericParameter Propriété
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.
Obtient une valeur indiquant si le Type actuel représente un paramètre de type d'une définition de type ou de méthode générique.
public:
abstract property bool IsGenericParameter { bool get(); };
public:
virtual property bool IsGenericParameter { bool get(); };
public abstract bool IsGenericParameter { get; }
public virtual bool IsGenericParameter { get; }
member this.IsGenericParameter : bool
Public MustOverride ReadOnly Property IsGenericParameter As Boolean
Public Overridable ReadOnly Property IsGenericParameter As Boolean
Valeur de propriété
true
si l'objet Type représente un paramètre de type d'une définition de type générique ou de méthode générique ; sinon, false
.
Exemples
L’exemple suivant utilise la IsGenericParameter propriété 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.
//
array<Type^>^typeArguments = t->GetGenericArguments();
Console::WriteLine( L"\tList type arguments ({0}):",
typeArguments->Length );
System::Collections::IEnumerator^ myEnum =
typeArguments->GetEnumerator();
while ( myEnum->MoveNext() )
{
Type^ tParam = safe_cast<Type^>(myEnum->Current);
// If this is a type parameter, display its
// position.
//
if ( tParam->IsGenericParameter )
{
Console::WriteLine(
L"\t\t{0}\t(unassigned - parameter position {1})",
tParam, tParam->GenericParameterPosition );
}
else
{
Console::WriteLine( L"\t\t{0}", tParam );
}
}
}
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.IsGenericType Then
' If this is a generic type, display the type arguments.
'
Dim typeArguments As Type() = t.GetGenericArguments()
Console.WriteLine(vbTab & "List type arguments (" _
& typeArguments.Length & "):")
For Each tParam As Type In typeArguments
' If this is a type parameter, display its position.
'
If tParam.IsGenericParameter Then
Console.WriteLine(vbTab & vbTab & tParam.ToString() _
& vbTab & "(unassigned - parameter position " _
& tParam.GenericParameterPosition & ")")
Else
Console.WriteLine(vbTab & vbTab & tParam.ToString())
End If
Next tParam
End If
Remarques
Type les objets qui représentent des paramètres de type générique peuvent être obtenus en appelant la GetGenericArguments méthode d’un Type objet qui représente une définition de type générique ou la GetGenericArguments méthode d’un MethodInfo objet qui représente une définition de méthode générique.
Pour une définition de type ou de méthode générique, la IsGenericParameter propriété retourne
true
pour chaque élément du tableau résultant.Pour un type ou une méthode construit fermé, la IsGenericParameter propriété retourne
false
pour chaque élément du tableau retourné par la GetGenericArguments méthode.Pour un type ou une méthode construite ouverte, certains éléments du tableau peuvent être des types spécifiques, tandis que d’autres peuvent être des paramètres de type. IsGenericParameter retourne
false
pour les types ettrue
pour les paramètres de type. L’exemple de code pour la ContainsGenericParameters propriété illustre une classe générique avec un mélange de types et de paramètres de type.
Pour obtenir la liste des conditions indifférentes pour les termes utilisés dans la réflexion générique, consultez les notes sur la propriété IsGenericType.