C# | Método Type.GetMembers()

El método Type.GetMembers() se utiliza para obtener los miembros (propiedades, métodos, campos, eventos, etc.) del tipo actual. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:

  • Método GetMembers()
  • Método GetMembers(BindingFlags)

Método GetMembers()

Este método se utiliza para devolver todos los miembros públicos del tipo actual.

Sintaxis: public System.Reflection.MemberInfo[] GetMembers();

Valor devuelto: este método devuelve una array de objetos MemberInfo que representan a todos los miembros públicos del tipo actual o una array vacía de tipo MemberInfo si el tipo actual no tiene miembros públicos.

Los siguientes programas ilustran el uso del método Type.GetMembers() :

Ejemplo 1:

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

Fields of current type is as Follow: 
 Boolean Equals(System.Object)
 Int32 GetHashCode()
 System.Type GetType()
 System.String ToString()
 Void .ctor()

Ejemplo 2:

// C# program to demonstrate the
// Type.GetMember() Method
using System;
using System.Globalization;
using System.Reflection;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(int);
  
        // try-catch block for handling Exception
        try {
  
            // Getting array of MemberInfos by
            // using GetMembers() Method
            MemberInfo[] info = objType.GetMembers();
  
            // Display the Result
            Console.WriteLine("Fields of current type is as Follow: ");
            for (int i = 0; i < 6; i++)
                Console.WriteLine(" {0}", info[i]);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción:

Fields of current type is as Follow: 
 Int32 CompareTo(System.Object)
 Int32 CompareTo(Int32)
 Boolean Equals(System.Object)
 Boolean Equals(Int32)
 Int32 GetHashCode()
 System.String ToString()

Método GetMembers(BindingFlags)

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

Sintaxis: public abstract System.Reflection.MemberInfo[] GetMembers (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,
Cero (predeterminado), para devolver una array vacía.

Valor devuelto: este método devuelve una array de objetos MemberInfo que representan todos los miembros definidos para el tipo actual que coinciden con las restricciones de enlace especificadas o una array vacía de tipo MemberInfo, si no hay miembros definidos para el tipo actual, o si ninguno de los miembros definidos coincidir con las restricciones vinculantes.

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

Ejemplo 1:

// C# program to demonstrate the
// Type.GetMembers(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(Empty);
  
        // try-catch block for handling Exception
        try {
  
            // Getting array of Fields by
            // using GetField() Method
            MemberInfo[] info = objType.GetMembers(BindingFlags.Public
                                                   | BindingFlags.Instance);
  
            // Display the Result
            Console.WriteLine("Fields of current type is as Follow: ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) {
            Console.WriteLine("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción:

Fields of current type is as Follow: 
 Boolean Equals(System.Object)
 Int32 GetHashCode()
 System.Type GetType()
 System.String ToString()
 Void .ctor()

Ejemplo 2:

// C# program to demonstrate the
// Type.GetMembers(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(int);
  
        // try-catch block for handling Exception
        try {
  
            // Getting array of Fields by
            // using GetField() Method
            MemberInfo[] info = objType.GetMembers(BindingFlags.Public
                                                   | BindingFlags.Static);
  
            // Display the Result
            Console.WriteLine("Fields of current type is as Follow: ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) 
        {
            Console.WriteLine("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción:

Fields of current type is as Follow: 
 Int32 Parse(System.String)
 Int32 Parse(System.String, System.Globalization.NumberStyles)
 Int32 Parse(System.String, System.IFormatProvider)
 Int32 Parse(System.String, System.Globalization.NumberStyles, System.IFormatProvider)
 Boolean TryParse(System.String, Int32 ByRef)
 Boolean TryParse(System.String, System.Globalization.NumberStyles, System.IFormatProvider, Int32 ByRef)
 System.Int32 MaxValue
 System.Int32 MinValue

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 *