This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: Die wohl h��ufigste Ausnahme: NullReferenceException
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Wer kennt sie nicht, die nachfolgenden Meldungen:
System.NullReferenceException: Object reference not set to an instance of an object
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Was ist passiert? Es wurde versucht auf ein Objekt zuzugreifen, welches null ist. Im Gegensatz zu Wertetypen m��ssen Referenztypen instanziert werden. Erst dann kann ein Zugriff darauf stattfinden.
Beispiel MyObject o = null;
o.CallMethod(); // NullReferenceException
Hier wurde das Objekt nicht instanziert und f��hrt daher zu einer NullReferenceException.
MyObject o = new MyObject();
o.CallMethod(); // keine Exception
Da in diesem Beispiel das Objekt instanziert wurde, wird der Methoden-Aufruf ohne Exception ausgef��hrt.
Um eine NullReferenceException zu vermeiden macht es Sinn, vor dem Zugriff auf eine Objekt zu ��berpr��fen ob es null ist. Ist dem nicht so, kann "weitergearbeitet" werden.
MyObject o = null;
if (o != null)
{
o.CallMethod();
}
Damit wird sichergestellt, dass der Code innerhalb der Bedingung nur ausgef��hrt wird, wenn das Objekt erfolgreich instanziert wurde. Und so ganz nebenbei fliegen dem Benutzer weit weniger Exception um die Ohren ;-)