Recentemente sto sviluppando un software che analizza e visualizza informazioni XML da un sito web. Abbastanza semplice vero?Mi sembra di essere caduto in un enorme, massiccio problema con NullReferenceExceptions
Ricevo dei CARICHI di NullReferenceExceptions. Ad esempio, questo metodo:
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;
}
}
}
ho dovuto avvolgere una brutta come il peccato Se tutto il ciclo foreach reale al fine di evitare che un'eccezione.
Mi sembra di mettere gli cerotti su una gomma a terra invece di risolvere il problema. C'è un modo per affrontare questo problema? Forse un libro che dovrei leggere sui pattern di programmazione o cosa no?
Davvero, mi sono perso. Probabilmente sto facendo le domande sbagliate.
Si dovrebbe guardare il codice che * chiama * 'SetUserFriends'. Se si assume che la lista degli amici non debba essere 'null' (che è un'ipotesi abbastanza giusta, direi), allora il bug è in qualunque cosa passi * in *' null'. Utilizzare il debugger per cercare lo stack di chiamate quando si ottiene l'eccezione. –
Controllare meglio il motivo per cui si dispone di un riferimento Elenco nullo invece di un oggetto Elenco vuoto. – BenV
Questa è una nota a margine, ma direi di accettare IEnumerable, in modo che il metodo non richieda al chiamante di utilizzare una determinata classe di raccolta. –