Autor Beitrag
Macoy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Di 09.05.06 20:29 
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 ?


ausblenden 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;

// misc implementations
.
.

public SpeechSignal SSignal;   // is never NULL


void DataSelectionChanged ( object sender, int startSample, int endSample)
{
if(ss != null)
SegmentSelected ( this, ss.CreateSegment(startSample, endSample - startSample));
// Debugger zeigt Null Exception an bei dieser Zeile, obwohl 
// ss != null und ss.CreateSegment(...) != null
}


}
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Macoy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 10.05.06 13:58 
user profile iconMacoy 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.