Eventos y Delegados
Contents
Eventos y Delegados#

Delegados y eventos que corresponden al lenguaje C#
Delegados#
Funcionamiento básico de un delegado:
1using System;
2
3namespace Tipos
4{
5 class Program
6 {
7 // declaración de un delegado:
8 public delegate int RealizarOperacion(int num1, int num2);
9
10 // método suma:
11 public static int Suma(int a, int b)
12 {
13 return a + b;
14 }
15
16 // metodo resta:
17 public static int Resta(int a, int b)
18 {
19 return a - b;
20 }
21
22 static void Main(string[] args)
23 {
24 // crear instancia de un delegado y apuntar al metodo suma:
25 RealizarOperacion suma = Suma;
26 RealizarOperacion resta = Resta;
27
28 // pasarle los valores e imprimir:
29 Console.WriteLine(suma(5,18));
30 Console.WriteLine(resta(10, 3));
31
32 Console.Read();
33 }
34 }
35}
Métodos anónimos#
Las funciones anónimas se han añadido en este lugar ya que dependen de los delegados para ser creadas:
1using System;
2
3namespace Tipos
4{
5 class Program
6 {
7 // se crea un delegado para la función anónima:
8 public delegate string RealizarSaludo(string nombre);
9
10 static void Main(string[] args)
11 {
12 // definimos la función anónima con el uso del delegate:
13 RealizarSaludo saludar = delegate (string nombre)
14 {
15 return "Hola, me llamo " + nombre;
16 };
17
18 // uso de la función anónima:
19 Console.WriteLine(saludar("Guillermo"));
20 Console.Read();
21 }
22 }
23}
Expresiones Lambda#
1using System;
2using System.Collections.Generic;
3
4namespace Tipos
5{
6 class Program
7 {
8 static void Main(string[] args)
9 {
10 // creamos una lista sencilla:
11 List<int> listadoBase = new List<int> { 2, 4, 3, 6, 4, 3, 2, 1, 5, 3 };
12
13 // se puede filtrar la lista usando expresiones lambda:
14 List<int> listaPares = listadoBase.FindAll(i => i % 2 == 0);
15
16 foreach(int listado in listaPares)
17 {
18 Console.WriteLine(listado);
19 }
20 Console.Read();
21 }
22
23 }
24}
Eventos#
PROXIMAMENTE…