C# | Método Type.GetMethods()

El método Type.GetMethods() se utiliza para obtener los métodos del tipo actual. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:

  • Método GetMethods(BindingFlags)
  • Método GetMethods()

Método GetMethods(BindingFlags)

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

Sintaxis: public abstract System.Reflection.MethodInfo[] GetMethods (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 MethodInfo que representan todos los métodos definidos para el tipo actual que coinciden con las restricciones de enlace especificadas o una array vacía de tipo MethodInfo, si no hay métodos definidos para el tipo actual, o si ninguno de los métodos definidos coincidir con las restricciones vinculantes.

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

Ejemplo 1:

// C# program to demonstrate the
// Type.GetMethods() 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 Method by
            // using GetMethods() Method
            MethodInfo[] info = objType.GetMethods(BindingFlags.Public | BindingFlags.Instance);
  
            // Display the Result
            Console.WriteLine("Methods 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:

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

Ejemplo 2:

// C# program to demonstrate the
// Type.GetMethods() 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 Method by
            // using GetMethods() Method
            MethodInfo[] info = objType.GetMethods(BindingFlags.Public | BindingFlags.Static);
  
            // Display the Result
            Console.WriteLine("Methods 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:

Methods 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)

Método GetMethods()

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

Sintaxis: public System.Reflection.MethodInfo[] GetMethods();

Valor de retorno: este método devuelve una array de objetos MethodInfo que representan todos los métodos públicos definidos para el tipo actual o una array vacía de tipo MethodInfo si no se definen métodos públicos para el tipo actual.

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

Ejemplo 1:

// C# program to demonstrate the
// Type.GetMethods() Method
using System;
using System.Globalization;
using System.Reflection;
  
// Defining class Empty
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 Method by
            // using GetMethods() Method
            MethodInfo[] info = objType.GetMethods();
  
            // Display the Result
            Console.WriteLine("Methods 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:

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

Ejemplo 2:

// C# program to demonstrate the
// Type.GetMethods() Method
using System;
using System.Globalization;
using System.Reflection;
  
// Defining class Student
public class Student {
  
    private string name, dept;
    private int roll;
  
    // Constructor
    public Student(string name, int roll, string dept)
    {
        this.name = name;
        this.roll = roll;
        this.dept = dept;
    }
  
    // getter for name
    public string getName()
    {
        return name;
    }
  
    // getter for roll
    public int getRoll()
    {
        return roll;
    }
  
    // getter for dept
    public string getDept()
    {
        return dept;
    }
}
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Student);
  
        // try-catch block for handling Exception
        try {
  
            // Getting array of Method by
            // using GetMethods() Method
            MethodInfo[] info = objType.GetMethods(BindingFlags.Public | BindingFlags.Instance);
  
            // Display the Result
            Console.WriteLine("Methods 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:

Methods of current type is as Follow: 
 System.String getName()
 Int32 getRoll()
 System.String getDept()
 Boolean Equals(System.Object)
 Int32 GetHashCode()
 System.Type GetType()
 System.String ToString()

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 *