I have an interface defining an event:
interface IEXampleinterface
{
event MyEventHandler MyEvent;
}
In my GUI class I am calling a "processor" class which is again calling a "parser" class which implements the interface:
class GUI
{
public DoSomething()
{
Processor processor = new Processor();
processor.MyEvent += new MyEventHandler(processor_myevent);
processor.DoSomething();
}
public processor_myevent(object sender, EventArgs e)
{
...
}
}
Processor class:
class processor
{
IExampleInterface parser;
event MyEventHandler MyEvent;
public void DoSomething()
{
parser = new Parser();
parser.MyEvent += new MyEventHandler(parser_myevent);
parser.DoStuff();
}
public void parser_myevent(object sender, EventArgs e)
{
if(MyEvent != null)
{
MyEvent(sender, e)
}
}
}
Parser class:
class Parser : IExampleinterface
{
event MyEventHandler MyEvent;
public void DoStuff()
{
MyEvent(this, new EventArgs());
}
}
As you can see, the "Processor" class just takes the event from "Parser" and forwards it to the GUI. This is totally working, but I was asking if there is a more elegant way of doing this kind of event forwarding.