事件,委托

2016-12-16  本文已影响0人  本来想取long但是有人用了

委托:其实就是一种命令,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

上一篇 下一篇

猜你喜欢

热点阅读