Condividi tramite


Type.IsGenericParameter Proprietà

Definizione

Ottiene un valore che indica se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o metodo generico.

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

Valore della proprietà

Boolean

true se l'oggetto Type rappresenta un parametro di tipo di una definizione di tipo o metodo generico. In caso contrario, false.

Esempio

Nell'esempio seguente viene utilizzata IsGenericParameter la proprietà per verificare la ricerca di parametri di tipo generico in un tipo generico.

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

Type Gli oggetti che rappresentano parametri di tipo generico possono essere ottenuti chiamando il metodo di un oggetto che rappresenta una definizione di tipo generico o il metodo di un oggetto che rappresenta una definizione GetGenericArguments Type di metodo GetGenericArguments MethodInfo generico.

  • Per una definizione di tipo o metodo generico, IsGenericParameter la proprietà restituisce per ogni elemento della matrice true risultante.

  • Per un tipo o un metodo costruito chiuso, IsGenericParameter la proprietà restituisce per ogni elemento della matrice false restituita dal metodo GetGenericArguments .

  • Per un tipo o un metodo costruito aperto, alcuni elementi della matrice potrebbero essere tipi specifici e altri possono essere parametri di tipo. IsGenericParameter restituisce false per i tipi e per i parametri di true tipo. L'esempio di codice ContainsGenericParameters per la proprietà illustra una classe generica con una combinazione di tipi e parametri di tipo.

Per un elenco delle condizioni invariabili relative ai termini usati dal processo di reflection generico, vedere i commenti sulla proprietà IsGenericType.

Si applica a

Vedi anche