Type.IsGenericParameter Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt.

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

Eigenschaftswert

Boolean

true, wenn das Type-Objekt einen Typparameter einer generischen Typ- oder Methodendefinition darstellt, andernfalls false.

Beispiele

Im folgenden Beispiel wird die IsGenericParameter Eigenschaft verwendet, um auf generische Typparameter in einem generischen Typ zu testen.

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.
    let typeArguments = t.GetGenericArguments()

    printfn $"\tList type arguments ({typeArguments.Length}):" 

    for tParam in typeArguments do
        // If this is a type parameter, display its position.
        if tParam.IsGenericParameter then
            printfn $"\t\t{tParam}\t(unassigned - parameter position {tParam.GenericParameterPosition})"
        else
            printfn $"\t\t{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

Hinweise

TypeObjekte, die generische Typparameter darstellen, können durch Aufrufen der GetGenericArguments Methode eines Type Objekts abgerufen werden, das eine generische Typdefinition darstellt, oder die Methode eines MethodInfo Objekts, das GetGenericArguments eine generische Methodendefinition darstellt.

  • Bei einer generischen Typ- oder Methodendefinition gibt die IsGenericParameter Eigenschaft für jedes Element des resultierenden Arrays zurück true .

  • Bei einem geschlossenen konstruierten Typ oder einer Methode gibt die IsGenericParameter Eigenschaft für jedes Element des Arrays zurück, das von der GetGenericArguments Methode zurückgegeben false wird.

  • Für einen geöffneten konstruierten Typ oder eine Methode können einige Elemente des Arrays bestimmte Typen sein, und andere sind möglicherweise Typparameter. IsGenericParametergibt für die Typen und true für die Typparameter zurückfalse. Das Codebeispiel für die ContainsGenericParameters Eigenschaft veranschaulicht eine generische Klasse mit einer Mischung aus Typen und Typparametern.

Eine Liste der invarianten Bedingungen für Begriffe, für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie in den Hinweisen zur Eigenschaft IsGenericType.

Gilt für:

Siehe auch