Sdílet prostřednictvím


Type.IsGenericParameter Vlastnost

Definice

Získá hodnotu určující, zda aktuální představuje parametr typu v Type definici obecného typu nebo metody.

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

Hodnota vlastnosti

Boolean

true Pokud objekt Type představuje parametr typu definice obecného typu nebo definice obecné metody, jinak false hodnota .

Příklady

Následující příklad používá vlastnost IsGenericParameter k otestování parametrů obecného typu v obecném typu.

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

Poznámky

Type Objekty, které představují parametry obecného typu, lze získat voláním metody objektu, který představuje definici obecného typu, nebo metodou objektu, který představuje GetGenericArguments Type GetGenericArguments MethodInfo definici obecné metody.

  • Pro obecný typ nebo definici metody IsGenericParameter vrátí vlastnost pro každý prvek true výsledného pole.

  • Pro uzavřený konstruovaný typ nebo metodu vrátí vlastnost pro každý prvek pole IsGenericParameter false vráceného GetGenericArguments metodou .

  • Pro otevřený konstruovaný typ nebo metodu mohou být některé prvky pole konkrétní typy a jiné mohou být parametry typu. IsGenericParameter vrací false pro typy a pro parametry true typu. Příklad kódu pro vlastnost ContainsGenericParameters ukazuje obecnou třídu se kombinaci typů a parametrů typu.

Seznam invariantní podmínek pro termíny používané v obecné reflexi najdete v IsGenericType poznámkách k vlastnostem.

Platí pro

Viz také