Exportar (0) Imprimir
Expandir todo
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
Personas que lo han encontrado útil: 0 de 1 - Valorar este tema

Type.GetNestedTypes (Método)

Devuelve los tipos públicos anidados en el objeto Type actual.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public Type[] GetNestedTypes()

Valor devuelto

Tipo: System.Type[]
Una matriz de objetos Type que representan los tipos públicos anidados en el objeto Type actual (la búsqueda no es recursiva), o una matriz vacía de tipo Type si no hay tipos públicos anidados en el objeto Type actual.

Implementaciones

_Type.GetNestedTypes()

El método GetNestedTypes no devuelve tipos en un orden específico, como el orden alfabético o de declaración. El código no debe depender del orden de devolución de los tipos, porque ese orden varía.

Sólo se devuelven los tipos públicos anidados inmediatamente en el tipo actual; la búsqueda no es recursiva.

En la tabla siguiente se muestra qué miembros de una clase base devuelven los métodos Get cuando se reflejan en un tipo.

Tipo de miembro

Static

No estático

Constructor

No

No

Campo

No

Sí. Un campo siempre está oculto por nombre y firma.

Evento

No es aplicable

Según la regla del sistema de tipos comunes, la herencia es la misma que la de los métodos que implementan la propiedad. La reflexión trata las propiedades de acuerdo con la regla "Ocultar por nombre y firma". Vea la nota 2.

Método

No

Sí. Cualquier método (tanto virtual como no virtual) puede estar oculto por nombre o por nombre y firma.

Tipo anidado

No

No

Propiedad

No es aplicable

Según la regla del sistema de tipos comunes, la herencia es la misma que la de los métodos que implementan la propiedad. La reflexión trata las propiedades de acuerdo con la regla "Ocultar por nombre y firma". Vea la nota 2.

  1. La regla "Ocultar por nombre y firma" tiene en cuenta todas las partes de la firma, incluidos los modificadores personalizados, los tipos de valores devueltos, los tipos de parámetros, los centinelas y las convenciones de llamada no administradas. Se trata de una comparación binaria.

  2. En el caso de la reflexión, las propiedades y los eventos están ocultos por nombre y firma. Si existe una propiedad con un descriptor de acceso get y otro set en la clase base, pero la clase derivada solo tiene un descriptor de acceso get, la propiedad de la clase derivada oculta la propiedad de la clase base y no se podrá obtener acceso al descriptor de acceso set de la clase base.

  3. Los atributos personalizados no forman parte del sistema de tipos comunes.

Si el objeto Type actual representa un parámetro de tipo en la definición de un tipo genérico o de un método genérico, este método busca los tipos anidados de la restricción de clase.

Si un tipo anidado es genérico, este método devuelve su definición de tipo genérico. Esto se cumple incluso en el caso de que el tipo genérico envolvente sea un tipo construido cerrado.

NotaNota

Si el objeto Type actual representa un tipo genérico definido en C#, Visual Basic o C++, todos sus tipos anidados son genéricos aunque no posean ningún parámetro genérico propio. Esto no se cumple necesariamente con los tipos anidados definidos en ensamblados dinámicos o compilados con Ilasm.exe (Ensamblador de MSIL).

Para obtener información sobre los tipos genéricos anidados, así como sobre la forma de generar tipos genéricos anidados a partir de sus definiciones de tipo genérico, vea MakeGenericType.

En el ejemplo siguiente se define una clase anidada y un tipo struct en MyClass, luego se obtienen objetos de los tipos anidados mediante el tipo de MyClass.



using System;
using System.Reflection;
public class MyClass 
{
    public class NestClass 
    {
        public static int myPublicInt=0;
    }
    public struct NestStruct
    {
        public static int myPublicInt=0;
    }
}

public class MyMainClass 
{
    public static void Main() 
    {
        try
        {
            // Get the Type object corresponding to MyClass.
            Type myType=typeof(MyClass);
            // Get an array of nested type objects in MyClass. 
            Type[] nestType=myType.GetNestedTypes();
            Console.WriteLine("The number of nested types is {0}.", nestType.Length);
            foreach(Type t in nestType)
                Console.WriteLine("Nested type is {0}.", t.ToString());
        }
        catch(Exception e)
        {
            Console.WriteLine("Error"+e.Message);  
        }         
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.