C# Language
NullReferenceException
Suche…
NullReferenceException erklärt
Wenn Sie versuchen, auf ein nicht statisches Member (Eigenschaft, Methode, Feld oder Ereignis) eines Referenzobjekts NullReferenceException
wird eine NullReferenceException
ausgelöst, die jedoch null ist.
Car myFirstCar = new Car();
Car mySecondCar = null;
Color myFirstColor = myFirstCar.Color; // No problem as myFirstCar exists / is not null
Color mySecondColor = mySecondCar.Color; // Throws a NullReferenceException
// as mySecondCar is null and yet we try to access its color.
Um eine solche Ausnahme zu debuggen, ist das ganz einfach: In der Zeile, in der die Ausnahme ausgelöst wird, müssen Sie nur vor jedem 'suchen .
"oder" [
"oder in seltenen Fällen" (
".
myGarage.CarCollection[currentIndex.Value].Color = theCarInTheStreet.Color;
Woher kommt meine Ausnahme? Entweder:
-
myGarage
istnull
-
myGarage.CarCollection
istnull
-
currentIndex
istnull
-
myGarage.CarCollection[currentIndex.Value]
istnull
-
theCarInTheStreet
istnull
Im Debug-Modus müssen Sie nur den Mauszeiger auf jedes dieser Elemente setzen, und Sie finden Ihre Nullreferenz. Dann müssen Sie verstehen, warum es keinen Wert hat. Die Korrektur hängt vollständig vom Ziel Ihrer Methode ab.
Haben Sie vergessen, es zu instanziieren / zu initialisieren?
myGarage.CarCollection = new Car[10];
Sollst du etwas anderes machen, wenn das Objekt null ist?
if (myGarage == null)
{
Console.WriteLine("Maybe you should buy a garage first!");
}
Oder vielleicht hat dir jemand ein Nullargument gegeben und sollte nicht:
if (theCarInTheStreet == null)
{
throw new ArgumentNullException("theCarInTheStreet");
}
Denken Sie in jedem Fall daran, dass eine Methode niemals eine NullReferenceException auslösen sollte. Wenn ja, haben Sie vergessen, etwas zu überprüfen.