Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Métodos anónimos en C#: Simplificando el uso de delegados

Hemos visto que los delegados se usan para referenciar cualquier método que tenga la misma firma que el delegado. En otras palabras, puedes llamar a un método que puede ser referenciado por un delegado usando ese objeto delegado.

Los métodos anónimos proporcionan una técnica para pasar un bloque de código como parámetro de un delegado. Los métodos anónimos son métodos sin nombre, solo el cuerpo.

No necesitas especificar el tipo de retorno en un método anónimo; se infiere de la instrucción return dentro del cuerpo del método.

Escritura de un método anónimo

Los métodos anónimos se declaran con la creación de la instancia del delegado, usando la palabra clave delegate. Por ejemplo:

delegate void CambiadorNumero(int n); 
... 
CambiadorNumero nc = delegate(int x) { 
    Console.WriteLine("Método anónimo: {0}", x); 
};

El bloque de código Console.WriteLine("Método anónimo: {0}", x); es el cuerpo del método anónimo.

El delegado puede llamarse tanto con métodos anónimos como con métodos nombrados 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:

Demo en vivo
using System; 
delegate void CambiadorNumero(int n); 
namespace AplicacionDelegado { 
    class PruebaDelegado { 
        static int num = 10; 
        public static void SumarNum(int p) { 
            num += p; 
            Console.WriteLine("Método nombrado: {0}", num); 
        } 
        public static void MultiplicarNum(int q) { 
            num *= q; 
            Console.WriteLine("Método nombrado: {0}", num); 
        } 
        public static int ObtenerNum() { 
            return num; 
        } 
        static void Main(string[] args) { 
            // Crear instancias de delegado usando método anónimo 
            CambiadorNumero nc = delegate(int x) { 
                Console.WriteLine("Método anónimo: {0}", x); 
            }; 
            // Llamar al delegado usando el método anónimo 
            nc(10); 
            // Instanciar el delegado usando métodos nombrados 
            nc = new CambiadorNumero(SumarNum); 
            // Llamar al delegado usando métodos nombrados 
            nc(5); 
            // Instanciar el delegado usando otro método nombrado 
            nc = new CambiadorNumero(MultiplicarNum); 
            // Llamar al delegado usando métodos nombrados 
            nc(2); 
            Console.ReadKey(); 
        } 
    } 
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Método anónimo: 10 
Método nombrado: 15 
Método nombrado: 30

Lenguaje C

  1. Mecanizado de Precisión: Técnicas Comprobadas para Lograr Precisión en Piezas de Trabajo
  2. Método 21 de la EPA: Protocolo Integral de Detección y Reparación de Fugas
  3. Dominando clases y métodos abstractos en C#: Guía práctica
  4. Entendiendo clases y métodos parciales en C#
  5. Dominando clases y métodos sealed en C#: Cuándo usarlos, ejemplos claros y mejora de seguridad y rendimiento
  6. Dominando la Sobrecarga de Métodos en C#: Conceptos, Ejemplos y Buenas Prácticas
  7. Métodos en C#: Definición, llamada y uso de funciones
  8. Delegados en C#: Guía completa de referencias a funciones y eventos
  9. Funciones lambda en Python: Guía práctica de funciones anónimas
  10. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  11. Java 8 Métodos Por Defecto Explicados: Mejorar Interfaces y Compatibilidad Hacia Atrás