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

Método Type.GetGenericArguments ()

 

Publicado: octubre de 2016

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

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

public virtual Type[] GetGenericArguments()

Valor devuelto

Type: System.Type[]

Matriz de objetos Type que representan los argumentos de tipo de un tipo genérico. Devuelve una matriz vacía si el tipo actual no es un tipo genérico.

Exception Condition
NotSupportedException

No se admite el método invocado en la clase base. Las clases derivadas deben proporcionar una implementación.

Los elementos de matriz se devuelven en el orden en que aparecen en la lista de argumentos de tipo para el tipo genérico.

  • Si el tipo actual es un tipo construido cerrado (es decir, el ContainsGenericParameters propiedad devuelve false), la matriz devuelta por la GetGenericArguments método contiene los tipos que se han asignado a los parámetros de tipo genérico de la definición de tipo genérico.

  • Si el tipo actual es una definición de tipo genérico, la matriz contiene los parámetros de tipo.

  • Si el tipo actual es un tipo construido abierto (es decir, el ContainsGenericParameters propiedad devuelve true) en los tipos específicos no se han asignado a todos los parámetros de tipo y parámetros de tipo envolvente métodos ni tipos genéricos, la matriz contiene tanto tipos como tipo de parámetros. Use la IsGenericParameter propiedad para distinguirlos. Para ver una demostración de este escenario, vea el ejemplo de código para el ContainsGenericParameters propiedad.

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

El siguiente ejemplo de código utiliza el GetGenericArguments método para mostrar los argumentos de tipo de un tipo construido y los parámetros de tipo de su definición de tipo genérico.

Este ejemplo de código forma parte de un ejemplo mayor proporcionado para el IsGenericTypeDefinition propiedad. Vea el ejemplo más extenso para la salida de ejemplo.

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);
        }
    }
}

.NET Framework
Disponible desde 2.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: