fork download
  1. using System;
  2.  
  3. namespace Recetas.Ch01
  4. {
  5. public class FuncionesAnonimas
  6. {
  7. /*
  8. * Instancia estática de EventHandler que será usada para el
  9. * registro de eventos.
  10. */
  11. public static EventHandler MiEvento;
  12.  
  13. /*
  14. * Método de prueba para métodos denominados y delegados anónimos.
  15. */
  16. public static void MetodoManejoEvento(object sender, EventArgs args)
  17. {
  18. Console.WriteLine("Ejecución del método MetodoManejoEvento.");
  19. }
  20.  
  21. /*
  22. * Punto de entrada a la aplicación
  23. */
  24. public static void Main()
  25. {
  26. // C# 1.0: Uso de métodos denominados por el delegado
  27. MiEvento += new EventHandler(MetodoManejoEvento);
  28.  
  29. // C# 2.0: Uso de delegados anónimos para el registro del evento
  30. MiEvento += new EventHandler(delegate(object sender, EventArgs eventArgs)
  31. {
  32. Console.WriteLine("Llamada al delegado anónimo.");
  33. });
  34.  
  35. // C# 3.0: Uso de expresiones lambda para el evento
  36. MiEvento += new EventHandler((sender, eventArgs) =>
  37. {
  38. Console.WriteLine("Llamada a la expresión lambda.");
  39. });
  40.  
  41. Console.WriteLine("Invocación del evento: ");
  42. MiEvento.Invoke(new object(), new EventArgs());
  43.  
  44. Console.ReadLine();
  45. }
  46. }
  47. }
Success #stdin #stdout 0.02s 33840KB
stdin
Standard input is empty
stdout
Invocación del evento: 
Ejecución del método MetodoManejoEvento.
Llamada al delegado anónimo.
Llamada a la expresión lambda.