मेरे पास तीन ऑब्जेक्ट्स हैं ऑब्जेक्ट ए में ऑब्जेक्टबी है, ऑब्जेक्टबी में ऑब्जेक्टसी है। जब ObjectC एक घटना मैं ObjectA इसके बारे में पता करने की जरूरत आग, तो यह मैं क्या किया है है ...घटनाओं को बुलबुला करने का पसंदीदा तरीका क्या है?
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();
}
}
}
इस इस संभाल करने के लिए उचित तरीका है, या वहाँ एक बेहतर तरीका है? मैं ऑब्जेक्ट को ऑब्जेक्टसी के बारे में नहीं जानना चाहता, केवल इतना ही कि उसने एक कार्यक्रम उठाया।
यह बात करने का एक प्रभावी तरीका है। – jvanrhyn