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 ist null
  • myGarage.CarCollection ist null
  • currentIndex ist null
  • myGarage.CarCollection[currentIndex.Value] ist null
  • theCarInTheStreet ist null

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow