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.GetNestedTypes (BindingFlags)

 

Cuando se invalida en una clase derivada, busca los tipos anidados en el objeto Type actual y aplica las restricciones de enlace especificadas.

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

public abstract Type[] GetNestedTypes(
	BindingFlags bindingAttr
)

Parámetros

bindingAttr
Type: System.Reflection.BindingFlags

Máscara de bits formada por una o varias enumeraciones BindingFlags que especifican la forma en que se realiza la búsqueda.

o bien

Cero, para devolver null.

Valor devuelto

Type: System.Type[]

Una matriz de objetos Type que representan todos los tipos anidados en el objeto Type actual que cumplen las restricciones de enlace especificadas (la búsqueda no es recursiva), o una matriz vacía de tipo Type, si no se encuentran tipos anidados que cumplan las restricciones de enlace.

La búsqueda de tipos anidados no es recursiva.

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

El siguiente BindingFlags filtro indicadores pueden utilizarse para definir que anidar tipos debe para incluir en la búsqueda:

Este método devuelve solo los tipos anidados del tipo actual. No busca en las clases base del tipo actual. Para buscar tipos que están anidados en clases base, debe recorrer la jerarquía de herencia, una llamada a GetNestedTypes en cada nivel.

BindingFlags.Instancey BindingFlags.Static se pasan por alto.

Llamar a este método solamente con el BindingFlags.Public marca o solo la BindingFlags.NonPublic marca devolverá tipos anidados especificados y no necesitarán otros indicadores.

Vea System.Reflection.BindingFlags para obtener más información.

Si la actual Type representa un parámetro de tipo en la definición de un tipo genérico o de 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 ocurre incluso si el tipo genérico envolvente es un tipo construido cerrado.

System_CAPS_noteNota

Si la actual Type representa un tipo genérico definido en C#, Visual Basic o C++, sus tipos anidados son genéricos todos los incluso si no tienen ningún parámetro genérico por sí mismos. Esto no es necesariamente así de los tipos anidados definidos en ensamblados dinámicos o compilados con la Ilasm.exe (IL Assembler).

Para obtener información sobre los tipos genéricos anidados y sobre la creación de tipos genéricos anidados de sus definiciones de tipo genérico, vea MakeGenericType.

En el ejemplo siguiente se crea dos clases públicas anidadas y dos clases protegidas anidadas y muestra información para las clases que coincidan con las restricciones de enlace especificadas.

using System;
using System.Reflection;

// Create a class with 2 nested public and 2 nested protected classes.
public class MyTypeClass
{
    public class Myclass1
    {
    }

    public class Myclass2 
    {
    }

    protected class MyClass3
    {
    }

    protected class MyClass4
    {
    }
}

public class TypeMain
{
    public static void Main() 
    {
        Type myType = (typeof(MyTypeClass));
        // Get the public nested classes.
        Type[] myTypeArray = myType.GetNestedTypes(BindingFlags.Public);
        Console.WriteLine("The number of nested public classes is {0}.", myTypeArray.Length);
        // Display all the public nested classes.
        DisplayTypeInfo(myTypeArray);
        Console.WriteLine();

        // Get the nonpublic nested classes.
        Type[] myTypeArray1 = myType.GetNestedTypes(BindingFlags.NonPublic|BindingFlags.Instance);
        Console.WriteLine("The number of nested protected classes is {0}.", myTypeArray1.Length);
        // Display all the nonpublic nested classes.
        DisplayTypeInfo(myTypeArray1);		
    }

    public static void DisplayTypeInfo(Type[] myArrayType)
    {
        // Display the information for all the nested classes.
        foreach (var t in myArrayType)
            Console.WriteLine("The name of the nested class is {0}.", t.FullName);
    }
}
// The example displays the following output:
//       The number of public nested classes is 2.
//       The name of the nested class is MyTypeClass+Myclass1.
//       The name of the nested class is MyTypeClass+Myclass2.
//       
//       The number of protected nested classes is 2.
//       The name of the nested class is MyTypeClass+MyClass3.
//       The name of the nested class is MyTypeClass+MyClass4.

.NET Framework
Disponible desde 1.1
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: