Freigeben über


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.
    '
    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

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

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

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

  • Bei einem offenen konstruierten Typ oder einer offenen Methode können einige Elemente des Arrays bestimmte Typen und andere Typparameter sein. IsGenericParameter gibt false für die Typen und für die true Typparameter zurück. 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