C#中的事件和委托

来源:百度知道 编辑:UC知道 时间:2024/06/05 23:04:36
谁能个我举个简单的例子解释下C#中的事件和委托,谢谢各位了。资料书上的太难理解了。

委托顾名思义就是中间人的意思,就像一个中介公司一样,处理事件的那些方法必须要到它那里注册,例:
delegate void mydelegate()//到这里注册的方法要和它一样没有参数和返回值
public void eventhander1()//可以到mydelegate那里注册
{。。。。}
public void eventhander2()
{。。。。}
注册方式:
mydelegate md1=new mydelegate(对象.eventhander1);
mydelegate md1=new mydelegate(对象.eventhander2);
这下只要用md1就可以调用上面那两个方法了。

事件声明:public event mydelegate event1();
事件注册:
对象.event +=md1;
事件触发:
对象.event1();
下面给一个完整的例子:
using System;
using System.Collections.Generic;
using System.Text;

namespace 练习
{ delegate void mydelegate();
public class name
{ event mydelegate event1;

public void eventhander1()
{ Console.WriteLine("这是对事件event1的相关处理"); }
public static void Main(String[] args)
{ name my = new name();
mydelegate m=new mydelegate(my.eventhander1);

my.event1 += m;//注册