delegado o evento

04/10/2006 - 15:46 por ernesto | Informe spam
¿Hay alguna diferencia entre usar un delegado o evento en este ejemplo?
¿Cuál sería mejor?

Es un simple código de ejemplo y nada en concreto, solo una prueba con
delegados y eventos

Con delegados:-
class Clase{
public delegate void delegado();
public delegado informar;

}
class Ejemplo{
...
Clase x = new Clase();
//se supone que la clase tiene un método estático Mostrar
x.informar = Ejemplo.Mostrar;
...
}

Con eventos--
class Clase{
public delegate void delegado();
public event delegado informar;

}
class Ejemplo{
...
Clase x = new Clase();
//se supone que la clase tiene un método estático Mostrar
x.informar += Ejemplo.Mostrar;
...
}
 

Leer las respuestas

#1 Alberto Poblacion
04/10/2006 - 17:04 | Informe spam
"ernesto" wrote in message
news:%
¿Hay alguna diferencia entre usar un delegado o evento en este ejemplo?
¿Cuál sería mejor?



Los dos son prácticamente equivalentes. Se puede hacer lo mismo con
delegados y con eventos, y de hecho los eventos se apoyan sobre delegados
para definirlos. Tradicionalmente se viene utilizando un evento cuando se
quiere que una clase lo exponga públicamente y sean los consumidores de esa
clase los que realizan la conexión del evento con un método (se "suscriben"
al evento). En cambio se usa un delegado cuando la conexión se realiza al
revés, es decir, alguien le pasa un delegado ya inicializado a una clase que
lo consume (por ejemplo, como argumento de una rutina, para que esta rutina
le haga llamadas). ¿Qué pasa si los usas al revés? Pues nada, que funciona
perfectamente, pero el código resulta quizás un poco menos legible porque no
es la forma en que habitualmente se suele operar.

Preguntas similares