事件,委托

委托:其实就是一种命令,A委托B,做事情的是B

上面是在现实世界里,反过来在程序世界中的.

委托实际上就是存储了方法的地址,做事情的仍然是B

.net编程规范说明声明委托是以xxxxEventHandler结尾

委托的语法格式:

public + delegate关键字+方法返回值+委托名

一个委托的例子

class HelloWorld

{

//定义一个委托

public delegate void GreetingDelegate(string name);

两个待委托的方法

public static void EnglishGreeting(string name){

Console.WriteLine ("hello,"+name);

}

public static void ChineseGreeting(string name){

Console.WriteLine ("你好,"+name);

}

定义一个有参数并且参数之一为委托的方法.只要传入为何种方法则调用哪种方法的委托public void GreetingPeople(string name,GreetingDelegate greeting){

greeting (name);

}

public static int Main (string[] args)

{

HelloWorld hw = new HelloWorld ();

hw.GreetingPeople ("黄河", HelloWorld.ChineseGreeting);

hw.GreetingPeople ("huanghe", HelloWorld.EnglishGreeting);

return 0;

}

}

事件一般会牵扯到两个角色:

1.事件发起者(Sender/Publisher):实际上就是事件的发行者.

2.事件订阅者(Receiver):对发起者发的通知感兴趣的话,就可以选择订阅该事件.

事件绝大部分都要和委托连用.

关键字delegateevent

匿名函数-->不记名函数c#2.0引进的

lambda表达式c#3.0引进的

声明一个委托带参数带返回值的委托

public delegate string myDelegate(string name);

带参数带返回值

myDelegate d4;

d4 = (string name)=> "你好" + name;

Console.WriteLine (d4 ("中国"));

"mL�t

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容