psv破解换内存卡:c# 里的委托是什么意思 它和事件应该是什么关系啊

来源:百度文库 编辑:高校问答 时间:2024/04/30 05:57:43

delegate就是委托
使用delegate可以动态的决定要调用的方法,其实,delegate就是存放着一个方法的指针,是通过delegate来转向链接那个方法的:
public static delegate De1(string sun,int a);//这里的参数必须要和链接的方法的参数相同(名字不一定要相同, 但是类型一定要)
public static void Sun(string name,int num)
{
for(int x=0;x<num;x++)
{
Console.WriteLine(name);
}
}
public static void Main()
{
De1 link=new De1(Sun);//建立一个新的delegate,同时将它链接到Sun
link("!@#",10); //这里就可以直接进行调用了
}

每一个事件中都包含了很多delegate,触发事件的过程是这样的:
触发事件的指令->将事件中的每个delegate调用一便->在调用delegate的时候,事实上delegate指向了用户所制作的方法,那么也就调用了用户所需要的事件处理方法
下面是对事件的实例:
public static delegate De2(string sun,int a)//delegate是事件的基础条件
public static event De2 OnSun;//这个事件的声明规定了它的类型是De2
public static void Sun(string name,int num)
{
De2(name,num);//这个方法能够触发事件
for(int x=0;x<num;x++)
{
MessageBox.Show(name);
}
}
public static void Main()
{
OnSun+=new De2(on);//为事件增加处理函数
}
public static on(string name,int num)
{
.........//对事件的处理过程
}

委托相当于一个函数的指针。事件发生后,它需要调用事件响应过程,这时就需要借助委托来调用父对象中的事件响应函数。