Type.IsGenericParameter Propiedad

Definición

Obtiene un valor que indica si el objeto Type actual representa un parámetro de tipo en la definición de un método o tipo genérico.

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

Valor de propiedad

Boolean

true si el objeto Type representa un parámetro de tipo de una definición de tipo genérico o de una definición de método genérico; de lo contrario, false.

Ejemplos

En el ejemplo siguiente se usa IsGenericParameter la propiedad para probar los parámetros de tipo genérico en un tipo genérico.

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

Comentarios

Type Los objetos que representan parámetros de tipo genérico se pueden obtener llamando al método de un objeto que representa una definición de tipo genérico o al método de un objeto que representa una definición GetGenericArguments Type de método GetGenericArguments MethodInfo genérico.

  • Para una definición de tipo o método genérico, la IsGenericParameter propiedad devuelve para cada elemento de la true matriz resultante.

  • Para un tipo o método construido cerrado, la IsGenericParameter propiedad devuelve para cada elemento de la false matriz devuelto por el método GetGenericArguments .

  • Para un tipo o método construido abierto, algunos elementos de la matriz pueden ser tipos específicos y otros podrían ser parámetros de tipo. IsGenericParameter devuelve false para los tipos y para los parámetros de true tipo. En el ejemplo de código ContainsGenericParameters de la propiedad se muestra una clase genérica con una combinación de tipos y parámetros de tipo.

Para obtener una lista de las condiciones invariables para los términos usados en la reflexión genérica, vea los comentarios de la propiedad IsGenericType.

Se aplica a

Consulte también