Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Type.GetGenericArguments (Método)

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

Tipo: 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.

ExcepciónCondición
NotSupportedException

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

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

  • Si el tipo actual es un tipo construido cerrado (es decir, la propiedad ContainsGenericParameters devuelve false), la matriz que devuelve el método GetGenericArguments 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, la propiedad ContainsGenericParameters devuelve true) en el que no se han asignado tipos específicos a todos los parámetros de tipo, ni a los parámetros de tipo de los tipos o métodos genéricos envolventes, la matriz contiene tanto tipos como parámetros de tipo. Utilice la propiedad IsGenericParameter para indicarlos aparte. Para obtener una demostración de este escenario, vea el ejemplo de código de la propiedad ContainsGenericParameters.

Si desea obtener una lista de las condiciones invariables para términos que se utilizan en la reflexión genérica, vea los comentarios de la propiedad IsGenericType.

En el ejemplo de código siguiente se utiliza el método GetGenericArguments 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 más extenso referente a la propiedad IsGenericTypeDefinition. Vea el ejemplo más grande de la salida del 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft