Partage via


Type.IsGenericParameter Propriété

Définition

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é

Boolean

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 et true 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.

S’applique à

Voir aussi