Recientemente estoy desarrollando un software que analiza y muestra información XML desde un sitio web. Lo suficientemente simple ¿verdad?Parece que he tenido algunos problemas masivos y masivos con NullReferenceExceptions
Obtengo LOADS de NullReferenceExceptions. Por ejemplo, este método:
private void SetUserFriends(List<Friend> list)
{
int x = 40;
int y = 3;
if (list != null)
{
foreach (Friend friend in list)
{
FriendControl control = new FriendControl();
control.ID = friend.ID;
control.URL = friend.URL;
control.SetID(friend.ID);
control.SetName(friend.Name);
control.SetImage(friend.Photo);
control.Location = new Point(x, y);
panel2.Controls.Add(control);
y = y + control.Height + 4;
}
}
}
tuve que envolver un feo como el pecado Si todo el bucle foreach real con el fin de prevenir una excepción.
Siento que solo estoy colocando tiritas en un neumático pinchado en lugar de solucionar el problema. ¿Hay alguna manera de abordar este problema? ¿Tal vez un libro que debería leer sobre los patrones de programación o qué no?
Realmente, estoy perdido. Probablemente estoy haciendo las preguntas incorrectas.
Debería estar mirando el código que está * llamando * 'SetUserFriends'. Si asumes que la lista de amigos no debería ser 'null' (lo cual es una suposición bastante buena, diría), entonces el error está en lo que esté pasando * en *' nulo'. Use el depurador para buscar la pila de llamadas cuando obtenga la excepción. –
Mejor compruebe por qué tiene una referencia de lista nula en lugar de un objeto de lista vacío. – BenV
Esta es una nota al margen, pero yo abogaría por aceptar IEnumerable, de modo que el método no requiera que la persona que llama use una clase de colección particular. –