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
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.
Tippfehler ja. Sorry beides klein geschrieben.
Ich korrigiere das mal
Life is a short
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
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