C# - Métodos anónimos
Discutimos que los delegados se usan para hacer referencia a cualquier método que tenga la misma firma que la del delegado. En otras palabras, puede llamar a un método al que un delegado puede hacer referencia utilizando ese objeto delegado.
Métodos anónimos proporcionar una técnica para pasar un bloque de código como un parámetro de delegado. Los métodos anónimos son los métodos sin nombre, solo el cuerpo.
No necesita especificar el tipo de devolución en un método anónimo; se deduce de la declaración de retorno dentro del cuerpo del método.
Escribir un método anónimo
Los métodos anónimos se declaran con la creación de la instancia delegada, con un delegado palabra clave. Por ejemplo,
delegate void NumberChanger(int n); ... NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); };
El bloque de código Console.WriteLine("Método anónimo:{0}", x); es el cuerpo del método anónimo.
Se puede llamar al delegado tanto con métodos anónimos como con métodos con nombre de la misma manera, es decir, pasando los parámetros del método al objeto delegado.
Por ejemplo,
nc(10);
Ejemplo
El siguiente ejemplo demuestra el concepto −
Demostración en vivousing System; delegate void NumberChanger(int n); namespace DelegateAppl { class TestDelegate { static int num = 10; public static void AddNum(int p) { num += p; Console.WriteLine("Named Method: {0}", num); } public static void MultNum(int q) { num *= q; Console.WriteLine("Named Method: {0}", num); } public static int getNum() { return num; } static void Main(string[] args) { //create delegate instances using anonymous method NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; //calling the delegate using the anonymous method nc(10); //instantiating the delegate using the named methods nc = new NumberChanger(AddNum); //calling the delegate using the named methods nc(5); //instantiating the delegate using another named methods nc = new NumberChanger(MultNum); //calling the delegate using the named methods nc(2); Console.ReadKey(); } } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Anonymous Method: 10 Named Method: 15 Named Method: 30
Lenguaje C
- Clase y método abstractos de C#
- C# Clase parcial y método parcial
- Clase y método sellados de C#
- Sobrecarga del método C#
- Python Anónimo/Función Lambda
- Clase anónima de Java
- Java 8 - Métodos predeterminados
- C# - Métodos
- C# - Delegados
- ¿Qué es el método 21 de la EPA?
- Métodos comunes para obtener la precisión de la pieza de trabajo en el mecanizado (2)