Type.IsGenericParameter Type.IsGenericParameter Type.IsGenericParameter Type.IsGenericParameter Property

Definizione

Ottiene un valore che indica se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o metodo generico.Gets a value indicating whether the current Type represents a type parameter in the definition of a generic type or method.

public:
 virtual property bool IsGenericParameter { bool get(); };
public virtual bool IsGenericParameter { get; }
member this.IsGenericParameter : bool
Public Overridable ReadOnly Property IsGenericParameter As Boolean

Valore della proprietà

true se l'oggetto Type rappresenta un parametro di tipo di una definizione di tipo o metodo generico. In caso contrario, false.true if the Type object represents a type parameter of a generic type definition or generic method definition; otherwise, false.

Esempi

Nell'esempio seguente viene utilizzata IsGenericParameter la proprietà per verificare la presenza di parametri di tipo generico in un tipo generico.The following example uses the IsGenericParameter property to test for generic type parameters in a generic type.

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

Commenti

Typegli oggetti che rappresentano parametri di tipo generico possono essere ottenuti GetGenericArguments chiamando il metodo Type di un oggetto che rappresenta una definizione di tipo generico GetGenericArguments o il metodo MethodInfo di un oggetto che rappresenta un metodo generico. definizione.Type objects that represent generic type parameters can be obtained by calling the GetGenericArguments method of a Type object that represents a generic type definition, or the GetGenericArguments method of a MethodInfo object that represents a generic method definition.

  • Per una definizione di tipo o di metodo generico IsGenericParameter , la true proprietà restituisce per ogni elemento della matrice risultante.For a generic type or method definition, the IsGenericParameter property returns true for every element of the resulting array.

  • Per un metodo o un tipo costruito chiuso, IsGenericParameter la proprietà false restituisce per ogni elemento della matrice restituita dal GetGenericArguments metodo.For a closed constructed type or method, the IsGenericParameter property returns false for every element of the array returned by the GetGenericArguments method.

  • Per un metodo o un tipo costruito aperto, alcuni elementi della matrice potrebbero essere tipi specifici e altri potrebbero essere parametri di tipo.For an open constructed type or method, some elements of the array might be specific types and others might be type parameters. IsGenericParameterrestituisce false per i tipi e true per i parametri di tipo.IsGenericParameter returns false for the types and true for the type parameters. Nell'esempio di codice per ContainsGenericParameters la proprietà viene illustrata una classe generica con una combinazione di tipi e parametri di tipo.The code example for the ContainsGenericParameters property demonstrates a generic class with a mixture of types and type parameters.

Per un elenco delle condizioni invariabili relative ai termini usati dal processo di reflection generico, vedere i commenti sulla proprietà IsGenericType.For a list of the invariant conditions for terms used in generic reflection, see the IsGenericType property remarks.

Si applica a

Vedi anche