Ich habe drei Objekte ObjectA hat ein ObjectB, ObjectB hat ein ObjectC. Wenn ObjectC feuert ein Ereignis ich ObjectA muß darüber Bescheid wissen, so ist dies, was ich habe ... getanWas ist der bevorzugte Weg, um Ereignisse zu blasen?
public delegate void EventFiredEventHandler();
public class ObjectA
{
ObjectB objB;
public ObjectA()
{
objB = new ObjectB();
objB.EventFired += new EventFiredEventHandler(objB_EventFired);
}
private void objB_EventFired()
{
//Handle the event.
}
}
public class ObjectB
{
ObjectC objC;
public ObjectB()
{
objC = new ObjectC();
objC.EventFired += new EventFiredEventHandler(objC_EventFired);
objC.FireEvent();
}
public event EventFiredEventHandler EventFired;
protected void OnEventFired()
{
if(EventFired != null)
{
EventFired();
}
}
private void objC_EventFired()
{
//objC fired an event, bubble it up.
OnEventFired();
}
}
public class ObjectC
{
public ObjectC(){}
public void FireEvent()
{
OnEventFired();
}
public event EventFiredEventHandler EventFired;
protected void OnEventFired()
{
if(EventFired != null)
{
EventFired();
}
}
}
Ist dies der richtige Weg, dies zu umgehen, oder gibt es einen besseren Weg? Ich möchte nicht, dass ObjectA überhaupt von ObjectC weiß, sondern nur, dass es ein Ereignis ausgelöst hat.
Dies ist ein effektiver Weg, um es zu tun. – jvanrhyn