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