Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

MethodInfo.GetGenericArguments (Método) ()

 

Devuelve una matriz de objetos Type que representan los argumentos de tipo de un método genérico o los parámetros de tipo de una definición de método genérico.

Espacio de nombres:   System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public override Type[] GetGenericArguments()

Valor devuelto

Type: System.Type[]

Matriz de objetos Type que representan los argumentos de tipo de un método genérico o los parámetros de tipo de una definición de método genérico. Devuelve una matriz vacía si el método actual no es un método genérico.

Exception Condition
NotSupportedException

No se admite este método.

The elements of the returned array are in the order in which they appear in the list of type parameters for the generic method.

  • If the current method is a closed constructed method (that is, the P:System.Reflection.MethodInfo.ContainsGenericParameters property returns false), the array returned by the M:System.Reflection.MethodInfo.GetGenericArguments method contains the types that have been assigned to the generic type parameters of the generic method definition.

  • If the current method is a generic method definition, the array contains the type parameters.

  • If the current method is an open constructed method (that is, the P:System.Reflection.MethodInfo.ContainsGenericParameters property returns true) in which specific types have been assigned to some type parameters and type parameters of enclosing generic types have been assigned to other type parameters, the array contains both types and type parameters. Use the P:System.Type.IsGenericParameter property to tell them apart. For a demonstration of this scenario, see the code example for the P:System.Reflection.MethodInfo.ContainsGenericParameters property.

For a list of the invariant conditions for terms specific to generic methods, see the P:System.Reflection.MethodInfo.IsGenericMethod property. For a list of the invariant conditions for other terms used in generic reflection, see the P:System.Type.IsGenericType property.

The following code example shows how to get the type arguments of a generic method and display them.

This example is part of a larger example provided for the M:System.Reflection.MethodInfo.MakeGenericMethod(System.Type[]) method.

// If this is a generic method, display its type arguments.
//
if (mi.IsGenericMethod)
{
    Type[] typeArguments = mi.GetGenericArguments();

    Console.WriteLine("\tList type arguments ({0}):", 
        typeArguments.Length);

    foreach (Type tParam in typeArguments)
    {
        // IsGenericParameter is true only for generic type
        // parameters.
        //
        if (tParam.IsGenericParameter)
        {
            Console.WriteLine("\t\t{0}  parameter position {1}" +
                "\n\t\t   declaring method: {2}",
                tParam,
                tParam.GenericParameterPosition,
                tParam.DeclaringMethod);
        }
        else
        {
            Console.WriteLine("\t\t{0}", tParam);
        }
    }
}

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 2.0
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: