static void Main(string[] args) { ImprimeMensaje imprime = mensaje => Console.WriteLine(mensaje); imprime += mensaje => File.WriteAllText(@"C:\Users\Enrique\Documents\mensaje_lambda.txt", mensaje); // El mensaje se manda a todos los métodos target del delegado RegistraMensaje(imprime, "Hola mundo multicast delegate con expresiones lambda"); }
static void Main(string[] args) { // Genera un multicast delegate ImprimeMensaje imprime = ImprimeEnConsola; imprime += ImprimeEnArchivo; // El mensaje se manda a todos los métodos target del delegado RegistraMensaje(imprime, "Hola mundo multicast delegate"); }
static void Main(string[] args) { // Genera un multicast delegate ImprimeMensaje imprime = ImprimeEnConsola; imprime += ImprimeEnArchivo; imprime += ImprimeEnConsola; imprime("Hola mundo multicast delegate"); }
static void Main(string[] args) { ImprimeMensaje imprime = delegate(string mensaje) { Console.WriteLine(mensaje); }; imprime += delegate(string mensaje) { File.WriteAllText("mensaje.txt", mensaje); }; RegistraMensaje(imprime, "Hola mundo multicast delegate con métodos anónimos"); }
static void Main(string[] args) { ImprimeMensaje imprime = delegate(string mensaje) { Console.WriteLine(mensaje); }; imprime += delegate(string mensaje) { File.WriteAllText(@"C:\Users\Enrique\Documents\mensaje_metodos_anomimos.txt", mensaje); }; // El mensaje se manda a todos los métodos target del delegado RegistraMensaje(imprime, "Hola mundo multicast delegate con métodos anónimos"); }
private static void Main(string[] args) { //Definicion de exp lambda: Parametro => funcion ImprimeMensaje imprime = mensaje => { mensaje += ".txt"; Console.WriteLine(mensaje); }; imprime += mensaje => File.WriteAllText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "mensaje_lambda.txt"), mensaje); ImprimeMensaje2 imprime2 = (string mensaje, string extension) => Console.WriteLine(mensaje + extension); imprime2("hola", "txt"); RegistraMensaje(imprime, "Esto usa una expresion lambda"); }
static void RegistraMensaje(ImprimeMensaje imprime, string mensaje) { // Invoca a los métodos registrados en el delgado imprime(mensaje); }