C# | Método Type.GetNestedTypes()

El método Type.GetNestedTypes() se usa para obtener los tipos anidados dentro del tipo actual. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:

Método GetNestedTypes()

Este método se usa para devolver los tipos públicos anidados en el Tipo actual.
 

Sintaxis: public Type[] GetNestedTypes();
Valor de retorno: este método devuelve una array de objetos de tipo que representan los tipos públicos anidados en el tipo actual (la búsqueda no es recursiva), o una array vacía de tipo de tipo si no hay tipos públicos anidados en el tipo actual. 
 

Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:
 

csharp

// C# program to demonstrate the
// Type.GetNestedTypes() Method
using System;
using System.Globalization;
using System.Reflection;
 
// Defining class Empty
public class Empty { }
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Person);
 
        // try-catch block for handling Exception
        try {
 
            // Getting array of Method by
            // using GetMethods() Method
            Type[] type = objType.GetNestedTypes();
 
            // Display the Result
            Console.WriteLine("NestedType of current type is: ");
            for (int i = 0; i < type.Length; i++)
                Console.WriteLine("{0} ", type[i]);
        }
 
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
 
public class Person {
 
    public class Student
    {
        // string name;
        // int roll;
        // string dept;
    }
 
    public class Teacher
    {
        // string name;
        // string dept;
        // int id;
    }
}
Producción: 

NestedType of current type is: 
Person+Student 
Person+Teacher

 

Ejemplo 2:
 

csharp

// C# program to demonstrate the
// Type.GetNestedTypes() Method
using System;
using System.Globalization;
using System.Reflection;
 
// Defining class Empty
public class Empty { }
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Animal);
 
        // try-catch block for handling Exception
        try {
 
            // Getting array of Method by
            // using GetMethods() Method
            Type[] type = objType.GetNestedTypes();
 
            // Display the Result
            Console.WriteLine("NestedType of current type is: ");
            for (int i = 0; i < type.Length; i++)
                Console.WriteLine(" {0}", type[i]);
        }
 
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
 
public class Animal {
 
    public class Cat {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public class Dog {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public class Mouse {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public interface Description {
 
        string getBreed();
        string getColor();
        string getType();
        bool isAlive();
    }
}
Producción

NestedType of current type is: 
 Animal+Cat
 Animal+Dog
 Animal+Mouse
 Animal+Description

Método GetNestedTypes(BindingFlags)

Este método se usa para buscar los tipos anidados en el Tipo actual, usando las restricciones de enlace especificadas cuando se reemplazan en una clase derivada.
 

Sintaxis: public abstract Type[] GetNestedTypes (System.Reflection.BindingFlags bindingAttr); 
Aquí, se necesita una máscara de bits compuesta por uno o más BindingFlags que especifican cómo se realiza la búsqueda o, Zero, para devolver un valor nulo.
Valor devuelto: este método devuelve una array de objetos de tipo que representan todos los tipos anidados en el tipo actual que coinciden con las restricciones de enlace especificadas (la búsqueda no es recursiva), o una array vacía de tipo de tipo si no se encuentran tipos anidados que coincidan con el restricciones vinculantes. 
 

Ejemplo 1:
 

csharp

// C# program to demonstrate the
// Type.GetNestedTypes() Method
using System;
using System.Globalization;
using System.Reflection;
 
// Defining class Empty
public class Empty { }
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Animal);
 
        // try-catch block for handling Exception
        try {
 
            // Getting array of Method by
            // using GetMethods() Method
            Type[] type = objType.GetNestedTypes();
 
            // Display the Result
            Console.WriteLine("NestedType of current type is: ");
            for (int i = 0; i < type.Length; i++)
                Console.WriteLine(" {0}", type[i]);
        }
 
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
 
public class Animal {
 
    public class Cat {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public class Dog {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public class Mouse {
 
        // string breed;
        // string color;
        // string type;
    }
 
    public interface Description {
 
        string getBreed();
        string getColor();
        string getType();
        bool isAlive();
    }
}
Producción: 

NestedType of current type is: 
 Animal+Empty

 

Ejemplo 2:
 

csharp

// C# program to demonstrate the
// Type.GetNestedTypes() Method
using System;
using System.Globalization;
using System.Reflection;
 
// Defining class Empty
public class Empty { }
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Person);
 
        // try-catch block for handling Exception
        try {
 
            // Getting array of Method by
            // using GetMethods() Method
            Type[] type = objType.GetNestedTypes(BindingFlags.Public);
 
            // Display the Result
            Console.WriteLine("NestedType of current type is: ");
 
            for (int i = 0; i < type.Length; i++)
                Console.WriteLine(" {0}", type[i]);
        }
 
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
 
public class Person {
 
    public class Student
    {
        // string name;
        // int roll;
        // string dept;
    }
 
    public class Teacher
    {
        // string name;
        // string dept;
        // int id;
    }
}
Producción: 

NestedType of current type is: 
 Person+Student
 Person+Teacher

 

Referencia:
 

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *