Laden...

Event -= wirft eine NullReferenceException

Erstellt von Seikilos vor 13 Jahren Letzter Beitrag vor 13 Jahren 883 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren
Event -= wirft eine NullReferenceException

Hallo,
ich muss sicherstellen, das ich bei einem Event immer nur einmal den gleichen Handler registriere. Gleichzeitig muss das remove save sein. Sprich wenn ein Benutzer
Event -= seinHandler macht, darf da nichts fliegen.

Das wird benötigt, weil nicht garantiert werden kann, ob das remove nach dem add kommt oder nicht.
Folgender Code funktioniert jedoch nicht, das -= wirft eine Exception Object reference not set to an instance of an object.


 protected PropertyChangedEventHandler _foo;
      public event PropertyChangedEventHandler foo
      {
         add
         {
            if (_foo== null ||  _foo.GetInvocationList().Contains(value) == false)
            {
               _foo+= value;
            }
         }
         remove
         {
            // Save remove
            if (_foo!= null && _foo.GetInvocationList().Contains(value) == true)
            {
               _foo-= value;
            }
         }
      }

Ein Breakpoint beim Remove wird jedoch nie angesprungen wenn ich in einer anderen Klasse

 Parent.foo-= Parent_Foo;

aufrufe.
Muss das Event vorher irgendwie existieren?
Edit: Typo korrigiert

Life is a short

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

ist das nur nen Vertippser oder ist es Absicht das du unten nicht das Event verwendest was du oben deklarierst - die unterscheiden sich in der Groß/Kleinschreibung

Baka wa shinanakya naoranai.

Mein XING Profil.

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Tippfehler ja. Sorry beides klein geschrieben.

Ich korrigiere das mal

Life is a short

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Seikilos,

bist du dir sicher, dass die NullReferenceException von dem -= kommt? Ich denke, nämlich nicht. Eher wird schon Parent null sein bzw. noch null. Siehe [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt [finden und beheben].

herbivore

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren

Scheiße! Anfängerfehler§$%§

Ich hab da noch durch gesteppt und gedacht "Property Getter wird aufgerufen, alles gut soweit"

Ich glaub ich mach mal ne Pause.

Danke 😃

Life is a short