Entwickler-Ecke
WinForms - Nicht nachvollziehbarer Fehler beim Arbeiten mit Events
Macoy - Di 09.05.06 20:29
Titel: Nicht nachvollziehbarer Fehler beim Arbeiten mit Events
Hallo,
Vielleicht leide ich wiedermal unter Betriebsblindheit, aber ich krieg hier stets eine NullPointer Exception und kann nicht nachvollziehen, wo sie herkommt.
Also, ich habe ein Event und Delegate (SegmentSelected), welches in DataSelectionChanged (ebendfalls ein EventHandler) ausgelöst wird.
Nun bekomme ich immer an dieser Stelle, wo das Event ausgelöst werden soll, einen NullPointerEx vom Debugger gemeldet, obwohl das nicht sein dürfte. Alle beteiligten Objekte sind nicht null und konsistent (gäbe es dort ein problem, würde der debugger ja dort hin springen). Der Assoziierte Eventhandler ist ebendfalls ok, selbst wenn kein Eventhandler festgelegt ist (das Event also praktisch in Wald springt ) kommt die Exception.
Einzige Besonderheit ist halt, das "DataSelectionChanged" ebendfalls ein Eventhandler ist, kann das daran liegen ?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| public delegate void OnSegmentSelected ( object sender , TSegment selection );
public partial class SignalOverview { public event OnSegmentSelected SegmentSelected;
. . .
public SpeechSignal SSignal;
void DataSelectionChanged ( object sender, int startSample, int endSample) { if(ss != null) SegmentSelected ( this, ss.CreateSegment(startSample, endSample - startSample)); }
} |
Christian S. - Mi 10.05.06 01:24
Es ist schon spät, also vielleicht schreibe ich was dummes, aber ich versuch's trotzdem:
Ist SegmentSelected denn irgendwo zugewiesen worden?
Macoy - Mi 10.05.06 11:37
Ja und Nein ... Ich habe beide Fälle ausprobiert mit dem gleichen Ergebniss.
Eigentlich dürfte doch nichts passieren, auch wenn es nicht zugewiesen ist.
Man muss ja nicht alle Events eines Controls behandeln.
Kha - Mi 10.05.06 13:58
Macoy hat folgendes geschrieben: |
Eigentlich dürfte doch nichts passieren, auch wenn es nicht zugewiesen ist. |
Nein, dann gibt es eben eine NullReferenceException. Es wäre eine ziemliche Ressourcenverschwendung vom CSC, wenn er für ein Event, dem noch gar kein Eventhandler zugewiesen wurde, schon einen Delegate erstellen würde.
Auch wenn du sagst, dass es ebenfalls mit Eventhandlern nicht funktioniert, solltest du also auf jeden Fall SegmentSelected auf null prüfen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!