Betrachten wir eine Klasse mit Ereignis haben erklärt:Warum kann öffentliches Ereignis nicht direkt außerhalb aufgerufen werden?
public class FooBar
{
public event EventHandler FooBarEvent;
}
Trotz „Öffentlichkeit“ der Veranstaltung, wir nicht FooBarEvent.Invoke
von außen anrufen können.
Dies wird durch Modyfing eine Klasse mit dem folgenden Ansatz überwunden:
public class FooBar
{
public event EventHandler FooBarEvent;
public void RaiseFooBarEvent(object sender, EventArgs eventArguments)
{
FooBarEvent.Invoke(sender, eventArguments);
}
}
Warum außerhalb öffentlichen Veranstaltungen den Zugriff nur durch Hinzufügen und Entfernen von Hörern begrenzt ist?
+1, gute Frage, wenn man bedenkt, dass das [Beobachtermuster] (http://en.wikipedia.org/wiki/Observer_pattern) * eine öffentliche "notifyObserver" -Methode hat. – Heinzi