У меня 3 класса A, B, C.
Класс A создает B .. Класс B создает класс C.
Класс C вызывает события после некоторого действия / операции с некоторыми данными, которая обрабатывается обработчиком событий в классе B.
Теперь я хочу обработать или передать те же самые данные о возбужденных событиях в класс А.
Я знаю, что могу вызвать другое событие из класса B и обработать его в A, но есть ли лучшее
способ обработки таких событий ??
Редактировать :
не использование Inheritance.i даст псевдо-код ..
пожалуйста, игнорируйте синтаксис как таковой. Я сделал что-то вроде этого.
Class A
{
B objB;
public void init()
{
objB= new B();
addeventhandler(objB);
objB.init();
}
//Suppose handle response_objB_Event handles event raised by C
private void handleEvent_objB_Event(string message)
{
doSomething(message);
}
}
Class B
{
C objC;
public void init()
{
objC= new C();
addeventhandler(objC);
objC.DoOperation();
}
//Suppose response_objC_Event handles event raised by C
private void handleEvent_objC_Event(string message)
{
//doSomething(message);
again raise event to pass 'message' to B.
}
private void doSomething(string message)
{
//.......do something
}
}
Class C
{
Event evtOperationComplete;
public void DoOperation()
{
//.......do something
// after coompletion
OperationComplete();
}
public void OperationComplete()
{
RaiseEvent(evtOperationComplete,message);
}
public void RaiseEvent(Event E,String message)
{
// raise/invoke event/delgate here
}
}
О, хорошо, спасибо :) ..
Изменить # 2
На самом деле A - это форма, которая создает B, который является SocketManager, а C - фактический класс сокета, который отправляет и получает данные. Когда C получает данные / сообщение, я хочу отобразить его в форме, т.е. B-> а.
Thx