C Delegados Y Eventos

Páginas: 7 (1728 palabras) Publicado: 3 de junio de 2015
Tutorial de C#
Delegados y Eventos
Por: Óscar López, M.Sc.
olopez@uniandino.com.co

DELEGADOS

OALP-2004 All Rights Reserved

Delegados
„

„

„

„

Son unos objetos que implícitamente extienden de
System.Delegate y definen un tipo referencia
soportado directamente por el lenguaje
Su labor es encapsular uno o más métodos definidos
en otros objetos. Tradicionalmente, esta capacidad esimplementada por medio de punteros a funciones
Técnicamente, un delegado describe la firma de un
método como un tipo, y cualquier método con la
misma firma puede ser añadido a la lista de invocación
del delegado
Creados para las situaciones en las que se necesita
llevar a cabo una acción pero no se sabe de antemano
qué método llamar o sobre cuál objeto invocarla. Se
crea un delegado y se deja que losdetalles
particulares sean establecidos más adelante
OALP-2004 All Rights Reserved

Delegados - Estructura

OALP-2004 All Rights Reserved

Delegados - Declaración
[[atributos]] [modificador de acceso] delegate
tipo identificador (lista de parámetros,)
„
„
„

Un tipo delegado se debe declarar antes de poder
usarlo
La declaración no lleva { } y se puede declarar dentro
de otro tipo (clase, interfaz) opor fuera de una clase
Sólo los métodos que tengan las mismas
características que la declaración del tipo delegado
(es decir, que sean compatibles con éste) le pueden
ser añadidos:
…
…
…

El mismo tipo de retorno
El mismo número de parámetros
El mismo tipo de parámetros en el mismo orden
OALP-2004 All Rights Reserved

Delegados - Instanciación
„

Un delegado se puede “instanciar” usando la palabraclave new y pasándole a su constructor alguno de los
posibles parámetros:
…
…
…

„
„
„

Un método estático compatible con su tipo
Un método de instancia compatible con su tipo
Otro delegado

Después de ser instanciado, se le pueden añadir
nuevos métodos
Una instancia de un delegado puede verse como la
representación de el o los métodos que contiene
Internamente, una instancia de un delegadoguarda
una lista de invocación con todos los métodos que
representa, organizados en el mismo orden en el que
fueron añadidos
OALP-2004 All Rights Reserved

Delegados - Invocación
„
„

„

Cuando se invoca un delegado, se le pasan
los parámetros con los que fue declarado
El delegado se encarga de pasarle dichos
parámetros a la lista de invocación con los
métodos que encapsula, y los invoca uno
detrás deotro
Es posible declarar un delegado para que
reciba parámetros por referencia. Puesto que
a cada método en la lista de invocación se le
pasan los mismos parámetros, los cambios en
alguno de éstos serán pasados a los
siguientes métodos
OALP-2004 All Rights Reserved

Delegados - Ejemplo
1.

using System;

2.

public delegate int MyDelegate (int i);

3.

class TestClass {
static int Double (intval) {
Console.WriteLine("ejecutando Double");
return val*2;
}

4.
5.
6.
7.

11.

int Triple (int val) {
Console.WriteLine("ejecutando Triple");
return val*3;
}

12.

public static void Main() {

8.
9.
10.

TestClass tc = new TestClass();
MyDelegate d1, d2;

13.
14.

d1 = new MyDelegate(TestClass.Double);
d2 = new MyDelegate(tc.Triple);

15.
16.

Console.WriteLine(d1(3));
Console.WriteLine("---------- ");
Console.WriteLine(d2(5));
Console.ReadLine();

17.
18.
19.
20.

}

21.
22.

}

OALP-2004 All Rights Reserved

Delegados - Optimizaciones
Métodos: Instancia vs. Estáticos
Es conveniente declarar como estáticos los métodos
que se pasan al delegado. Pero declararlos como de
instancia puede ser ligeramente más eficiente
Delegados Estáticos
Es conveniente asignar la responsabilidad deinstanciar el delegado a la clase que implementa el
método compatible con éste, implementado como un
campo estático
Delegados como Propiedades
Proporciona encapsulamiento, permite instanciar el
delegado sólo cuando se necesita, sólo lectura
OALP-2004 All Rights Reserved

Delegados – Estableciendo el Orden de Ejecución
„

„

„
„

Los delegados sirven para implementar un
sistema en el que un usuario pueda...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Eventos y delegados
  • Delegados c sharp
  • C mo se clasifican los eventos
  • C Gestion De Eventos
  • C Lculo De La Probabilidad De Un Evento
  • Delegar
  • soy delegada
  • delegar

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS