c# Null Exception imposible.

Iniciado por samuelhm, 23 Mayo 2014, 18:38 PM

0 Miembros y 1 Visitante están viendo este tema.

samuelhm

Tengo una clase, que contiene el siguiente codigo:

do
{
     objeto.image[0] = OtraClase.GetImage();
}while (objeto[0] == null); // Bucle hasta que objeto contenga algo que no sea null;
EventoMeterObjeto(objeto[0]); /// al intentar lanzar mi evento salta un null Reference exception, imposible que sea null en teoria no?



El Benjo

Bueno aquí veo que dentro del bucle haces referencia a 'objeto' sin un índice y dices que el arreglo es la propiedad 'image' del mismo objeto. No sé si por ahí sea el asunto.

Lo que te recomiendo es que veas en el depurador cual es en realidad la variable que es nula.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

samuelhm

Ups lo habia escrito mal en el foro, estaba así:

do
{
     objeto[0].image= OtraClase.GetImage();
}while (objeto[0] == null); // Bucle hasta que objeto contenga algo que no sea null;
EventoMeterObjeto(objeto[0]); /// al intentar lanzar mi evento salta un null Reference exception, imposible que sea null en teoria no?


Ahora analizandolo, objeto seguro que no es null, pues si no, no habria salido del bloque while, entoces solo queda: puede un evento ser o estar null??

El Benjo

No, un evento no puede ser null. En todo caso insisto en que (cuando salte el error) compruebes cuál es la variable que está nula. Puede ser que el evento utilice otra variable además de objeto[0] y esa variable sí sea nula.

Si después de eso todavía no funciona entonces te recomiendo que cambies tu código como sigue:

Código (csharp) [Seleccionar]
do
{
     objeto[0] = new TipoDeLaVariableObjeto;
     objeto[0].image= OtraClase.GetImage();
}while (objeto[0] == null); // Bucle hasta que objeto contenga algo que no sea null;


(Lo de TipoDeLaVariableObjeto lo cambias por el tipo de tu variable) De esta manera compruebas si el error es realmente por esa variable o no. Pero insisto, fíjate en las demás variables o propiedades que utiliza el evento. Ayúdate de la información que te da el depurador, que para eso está.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.