zoukankan      html  css  js  c++  java
  • C#委托的使用

    委托是一种类型,像其他系统类型一样,可以存储变量,

    不同的是委托类型变量是用来存储方法的。

    当委托变量指向函数,这样就可以像调用函数一样把委托变量当作函数一样调用了。

    定义方法为:deleget 返回值类型 委托类型(参数列表)

    委托的使用

    1.先定义一个委托类型,例如deleget void myDeleget();就声明了一个没有参数也没有返回值类型的委托

    2.定义了委托类型,就可以声明它的变量了,如 myDeleget md=deleget(){}; 其中后面的为匿名方法。使用deleget为关键词声明其中()如果委托类型带参数可以写在里面。

    3.调用委托md();这样就相当于执行了赋值给为委托类型的函数了。

    4.委托的类型,委托可以有很多的类型。

    a.无参数,无返回值的。deleget void firstDeleget();

    b.有参数,无返回值。deleget void secondDeleget(string msg);

    c.有参数,有返回值。deleget string thirdDeleget(string msg);参数可以有多个

    d.无参数,有返回值。deleget string fourDeleget(string msg);

    5.匿名方法的声明

    a.通过deldget声明  deleget(msg){return "test";};//其中msg为参数名,而真正的值是需要在调用时传入的,l例如:md("asdfsdf");

    b.lambda表达式:()=>{} 和第一种中很像,只是省去了deleget的关键字,添加了=>。其他的一致。

    6.委托的赋值

    如图所示,委托的赋值可以直接把方法赋值,也可以通过构造函数赋值。

    同时这个方法可以的定义好的,也可以是匿名方法。

    7.委托所需要的参数,是在执行委托时传入的。

    8.多播委托

    委托变量可以绑定多个方法。并以此执行。通过+=的方式添加。通过-=的方式注销。

    当其中一个委托出错时,将不会执行往后的委托。

    同时可以赋值给委托变量为NULL,这样就注销了所有注册的委托,这样是不安全的,所以就出现了事件。

  • 相关阅读:
    Flume线上日志采集【模板】
    【转】什么叫众筹?什么叫大数据?什么叫互联网思维?简单粗暴秒懂!
    【转】搞清楚LzoCodec和LzopCodec
    linux tail -f 和 tail -F的区别 && tail 的断点续传
    hadoop输出lzo文件并添加索引
    中文转Punycode
    Storm学习笔记——简介
    HBase学习笔记——Java API操作
    HBase学习笔记——配置及Shell操作
    HBase学习笔记——概念及原理
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6935752.html
Copyright © 2011-2022 走看看