Hilfe NullReferenceException

Nukleo

Mitglied
Hi, ich hab hier ne Applikation,
mit mehreren Klassen und die Funktioniert auch ganz sachgemäß. Jetzt wollte ich die Klassen mit NUnit testen und das funktioniert bei der einen ganz gut. Doch bei der anderen Klasse funktioniert irgendwie der Standardkonstruktor nicht.

Ich erzeuge ganz normal eine Instanz:
CKlasse neu = new CKlasse();

und wenn ich eine Funktion dieser Klasse ausführen will, wirft er mir eine:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Das passiert aber nur bei dem Standardkonstruktor. Copy- und Initialisierungskonstruktor funktionieren einwandfrei.

Im Programm selbst ist mir das nicht aufgefallen, aber NUnit haut mir das um die Ohren. Kennt jemand dieses Phänomen?

Für Hilfe wäre ich äußert dankbar
Beste Grüße
Nukleo
 
ich mache überhaupt nichts innerhalb des Konstruktors. Der ist einfach nur leer. Jetzt könnte man vermuten, das hängt mit nicht initialisierten Membervariablen zusammen. Sind sie nicht initialisiert bekomme ich die NullReferenceException. Falls ich sie innerhalb der Funktion oder schon bei der Dekleration belege, meinet wegen mit String.Empty, dann erhalte ich eine System.ArgumentOutOfRangeException, sobald ich eine Funktion dieser Klasse ausführe die auf den Membervariablen arbeitet.

Für mich bleibt weiterhin verwunderlich, dass das Programm ansich sachgemäß arbeitet und mir nie eine derartige Exception vor die Füße wirft. Des weiteren verwundert mich dass die Klasse darüber im gleichen Namensraum, die sich von der Struktur nur unwesentlich unterscheidet, nicht diese Exception wirft.

das ist für mich weder deterministisch noch nachvollziehbar... grübel grübel

Danke, dass Du drüber nachdenkst.
Mit besten Grüßen
Nukleo
 
So, jetzt hab ichs ;-)

der Konstruktor ist nicht das Problem, sondern die weiteren Funktionen. Die Member sind alle vom Typ String und Emty. in so ziemlich jeder Funktion beziehe ich mich auf Teile dieser Strings in der Form member.substring(0,1). Die erste Stelle existiert ja nicht bei einem leeren String und verweist so auf eine Stelle die nicht vorhanden ist. Ich muss halt vorher nur prüfen, ob der String nicht leer ist. hehe....

Ok, dann ist das Thema hier auch erledigt.

Bis bald
Nukleo
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück