这学期刚学完C#,觉得C#的委托与事件是比较难理解的,但这俩东西又是挺有用的,例如当你想在子线程调用主线程方法,或者想跨类使用控件,类之间传递方法,异步使用控件,子窗体调用主窗体控件等等,都需要用到委托delegate。
现在我总结一下我在C#中是怎样去使用delegate 和event的:
模拟情景:A类想调用B类的XXXMethod方法
1、定义delegate(定义的位置我觉得可以随便),如
public delegate void XXXDelegate(object XXXObj);//XXXObj可以是具体的参数,但必须与指向的方法的参数相同
2、在A类定义事件,如
public event XXXDelegate XXXEvent;
3、在B类内,将A对象的XXXEvent通过delegate指向XXXMethod方法,如
<pre name="code" class="csharp">A a = new A();
a.XXXEvent += new XXXDelegate(XXXMethod);
4、这时就可以直接把A类的XXXEvent当做是B类的XXXMethod来使用了。