美文网首页
事件,委托

事件,委托

作者: 本来想取long但是有人用了 | 来源:发表于2016-12-16 20:45 被阅读0次

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

    相关文章

      网友评论

          本文标题:事件,委托

          本文链接:https://www.haomeiwen.com/subject/cvfomttx.html