C# | Método Type.GetNestedType()

El método Type.GetNestedType() se usa para obtener un tipo específico anidado dentro del tipo actual. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:

  • Método GetNestedType(String, BindingFlags)
  • Método GetNestedType(String)

Método GetNestedType(String, BindingFlags)

Este método se usa para buscar el tipo anidado especificado, usando las restricciones de enlace especificadas cuando se anula en una clase derivada.

Sintaxis: tipo abstracto público GetNestedType (nombre de string, System.Reflection.BindingFlags bindingAttr);

Parámetros :
nombre : La string que contiene el nombre del tipo anidado a obtener.
bindingAttr : una máscara de bits compuesta por uno o más BindingFlags que especifican cómo se realiza la búsqueda o cero, para devolver un valor nulo.

Valor devuelto: este método devuelve un objeto que representa el tipo anidado que cumple los requisitos especificados si se encuentra; en caso contrario, nulo.

Excepción : este método lanza ArgumentNullException si el nombre es nulo.

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

Ejemplo 1:

// C# program to demonstrate the
// Type.GetNestedType(String, 
// BindingFlags) 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 {
  
            Type type = objType.GetNestedType("Student",
               BindingFlags.Public | BindingFlags.Instance);
  
            // Display the Result
            Console.Write("NestedType of current type is: ");
            Console.WriteLine(" {0}", type);
        }
  
        // 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

Ejemplo 2:

// C# program to demonstrate the
// Type.GetNestedType(String, 
// BindingFlags) 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 {
  
            Type type = objType.GetNestedType(null,
               BindingFlags.Public | BindingFlags.Instance);
  
            // Display the Result
            Console.Write("NestedType of current type is: ");
            Console.WriteLine(" {0}", type);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) 
        {
            Console.WriteLine("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
  
// Defining Person class
public class Person {
  
    // Defining class Student
    public class Student {
  
        // string name;
        // int roll;
        // string dept;
    }
  
    // Defining class Teacher
    public class Teacher {
  
        // string name;
        // string dept;
        // int id;
    }
}
Producción:

name is null.
Exception Thrown: System.ArgumentNullException

Método GetNestedType(String)

Este método se utiliza para buscar el tipo anidado público con el nombre especificado.

Sintaxis: tipo público GetNestedType (nombre de string);
Aquí, toma la string que contiene el nombre del tipo anidado para obtener.

Valor devuelto: este método devuelve un objeto que representa el tipo anidado público con el nombre especificado si se encuentra; en caso contrario, nulo.

Excepción : este método lanza ArgumentNullException si el nombre es nulo.

Ejemplo 1:

// C# program to demonstrate the
// Type.GetNestedType(String) 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 {
  
            Type type = objType.GetNestedType("Teacher");
  
            // Display the Result
            Console.Write("NestedType of current type is: ");
            Console.WriteLine(" {0}", type);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) 
        {
            Console.WriteLine("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
  
// Defining Person class
public class Person {
  
    // Defining class Student
    public class Student {
  
        // string name;
        // int roll;
        // string dept;
    }
  
    // Defining class Teacher
    public class Teacher {
  
        // string name;
        // string dept;
        // int id;
    }
}
Producción:

NestedType of current type is:  Person+Teacher

Ejemplo 2:

// C# program to demonstrate the
// Type.GetNestedType(String) 
// 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 {
  
            Type type = objType.GetNestedType(null);
  
            // Display the Result
            Console.Write("NestedType of current type is: ");
            Console.WriteLine(" {0}", type);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.WriteLine("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
  
// Defining Person class
public class Person {
  
    // Defining class Student
    public class Student {
  
        // string name;
        // int roll;
        // string dept;
    }
  
    // Defining class Teacher
    public class Teacher {
  
        // string name;
        // string dept;
        // int id;
    }
}
Producción:

name is null.
Exception Thrown: System.ArgumentNullException

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 *