Eventos en C#

19/02/2005 - 12:32 por Jose Antonio Torralba | Informe spam
Hola!

Estoy intentando crear un evento en una de las clases de mi aplicación pero
me da error. Hago lo siguiente:

Declaro un delegado y el evento en mi clase:
public delegate void OnCambioVisor(ListaLocalidades l);

public event OnCambioVisor onCambioVisor;

En uno de los métodos de esa clase disparo el evento:

onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
ListaLocalidades

En el constructor de otra clase pongo lo siguiente:

o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);

Y por último implemento el método Cambio_visor:

private void cambio_visor(ListaLocalidades l)
{
for (int i=0;i<l.numeroElementos();i++)
listLocalidades.Items.Add(l[i]);
}

La aplicación lanza una excepcion: "Excepción no controlada del tipo
'System.NullReferenceException' en jtrutas.exe

Información adicional: Referencia a objeto no establecida como instancia de
un objeto."

Esta excepción se lanza cuando la ejecución llega al disparo del evento.

Espero que alguien me pueda echar una mano. Gracias.

Un saludo!
 

Leer las respuestas

#1 Alberto
19/02/2005 - 14:39 | Informe spam
Este error suele aparecer cuando lanzas el evento pero nadie lo escucha. El
código creo que lo tienes bien pero asegúrate de que el objeto o (el que
tienes en el constructor) es el que realmente lanza el evento. Es posible
que tengas otro objeto del mismo tipo y que sea éste el que lo lanza.

"Jose Antonio Torralba" <joseatorralba(ESTO NO)@(NI ESTO)gmail.com> escribió
en el mensaje news:
Hola!

Estoy intentando crear un evento en una de las clases de mi aplicación
pero
me da error. Hago lo siguiente:

Declaro un delegado y el evento en mi clase:
public delegate void OnCambioVisor(ListaLocalidades l);

public event OnCambioVisor onCambioVisor;

En uno de los métodos de esa clase disparo el evento:

onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
ListaLocalidades

En el constructor de otra clase pongo lo siguiente:

o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);

Y por último implemento el método Cambio_visor:

private void cambio_visor(ListaLocalidades l)
{
for (int i=0;i<l.numeroElementos();i++)
listLocalidades.Items.Add(l[i]);
}

La aplicación lanza una excepcion: "Excepción no controlada del tipo
'System.NullReferenceException' en jtrutas.exe

Información adicional: Referencia a objeto no establecida como instancia
de
un objeto."

Esta excepción se lanza cuando la ejecución llega al disparo del evento.

Espero que alguien me pueda echar una mano. Gracias.

Un saludo!


Preguntas similares