using System;
namespace Recetas.Ch01
{
public class FuncionesAnonimas
{
/*
* Instancia estática de EventHandler que será usada para el
* registro de eventos.
*/
public static EventHandler MiEvento;
/*
* Método de prueba para métodos denominados y delegados anónimos.
*/
public static void MetodoManejoEvento(object sender, EventArgs args)
{
Console.WriteLine("Ejecución del método MetodoManejoEvento.");
}
/*
* Punto de entrada a la aplicación
*/
public static void Main()
{
// C# 1.0: Uso de métodos denominados por el delegado
MiEvento += new EventHandler(MetodoManejoEvento);
// C# 2.0: Uso de delegados anónimos para el registro del evento
MiEvento += new EventHandler(delegate(object sender, EventArgs eventArgs)
{
Console.WriteLine("Llamada al delegado anónimo.");
});
// C# 3.0: Uso de expresiones lambda para el evento
MiEvento += new EventHandler((sender, eventArgs) =>
{
Console.WriteLine("Llamada a la expresión lambda.");
});
Console.WriteLine("Invocación del evento: ");
MiEvento.Invoke(new object(), new EventArgs());
Console.ReadLine();
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIFJlY2V0YXMuQ2gwMQp7CglwdWJsaWMgY2xhc3MgRnVuY2lvbmVzQW5vbmltYXMKCXsKCQkvKgoJCSogSW5zdGFuY2lhIGVzdMOhdGljYSBkZSBFdmVudEhhbmRsZXIgcXVlIHNlcsOhIHVzYWRhIHBhcmEgZWwgCgkJKiByZWdpc3RybyBkZSBldmVudG9zLgoJCSovCgkJcHVibGljIHN0YXRpYyBFdmVudEhhbmRsZXIgTWlFdmVudG87CgkJCgkJLyoKCQkqIE3DqXRvZG8gZGUgcHJ1ZWJhIHBhcmEgbcOpdG9kb3MgZGVub21pbmFkb3MgeSBkZWxlZ2Fkb3MgYW7Ds25pbW9zLgoJCSovCgkJcHVibGljIHN0YXRpYyB2b2lkIE1ldG9kb01hbmVqb0V2ZW50byhvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgYXJncykKCQl7CgkJCUNvbnNvbGUuV3JpdGVMaW5lKCJFamVjdWNpw7NuIGRlbCBtw6l0b2RvIE1ldG9kb01hbmVqb0V2ZW50by4iKTsKCQl9CgkJCgkJLyoKCQkqIFB1bnRvIGRlIGVudHJhZGEgYSBsYSBhcGxpY2FjacOzbgoJCSovCgkJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJCXsKCQkJLy8gQyMgMS4wOiBVc28gZGUgbcOpdG9kb3MgZGVub21pbmFkb3MgcG9yIGVsIGRlbGVnYWRvCgkJCU1pRXZlbnRvICs9IG5ldyBFdmVudEhhbmRsZXIoTWV0b2RvTWFuZWpvRXZlbnRvKTsKCQkJCgkJCS8vIEMjIDIuMDogVXNvIGRlIGRlbGVnYWRvcyBhbsOzbmltb3MgcGFyYSBlbCByZWdpc3RybyBkZWwgZXZlbnRvCgkJCU1pRXZlbnRvICs9IG5ldyBFdmVudEhhbmRsZXIoZGVsZWdhdGUob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGV2ZW50QXJncykKCQkJewoJCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkxsYW1hZGEgYWwgZGVsZWdhZG8gYW7Ds25pbW8uIik7CgkJCX0pOwoJCQkKCQkJLy8gQyMgMy4wOiBVc28gZGUgZXhwcmVzaW9uZXMgbGFtYmRhIHBhcmEgZWwgZXZlbnRvCgkJCU1pRXZlbnRvICs9IG5ldyBFdmVudEhhbmRsZXIoKHNlbmRlciwgZXZlbnRBcmdzKSA9PgoJCQl7CgkJCQlDb25zb2xlLldyaXRlTGluZSgiTGxhbWFkYSBhIGxhIGV4cHJlc2nDs24gbGFtYmRhLiIpOwoJCQl9KTsKCQkJCgkJCUNvbnNvbGUuV3JpdGVMaW5lKCJJbnZvY2FjacOzbiBkZWwgZXZlbnRvOiAiKTsKCQkJTWlFdmVudG8uSW52b2tlKG5ldyBvYmplY3QoKSwgbmV3IEV2ZW50QXJncygpKTsKCQkJCgkJCUNvbnNvbGUuUmVhZExpbmUoKTsKCQl9Cgl9Cn0=