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,这样就注销了所有注册的委托,这样是不安全的,所以就出现了事件。

  • 相关阅读:
    经常使用排序算法时间复杂度和空间复杂度简析
    Android触碰事件
    opencv矩阵运算(2)
    [ACM] HDU 1400 Mondriaan's Dream (状态压缩,长2宽1长方形铺满)
    指针知识梳理8- 指针的指针
    Git学习笔记(一)
    Object-c Associated Object
    YTUOJ-计算该日在本年中是第几天(用户自己定义类型)
    MYSQL源代码编译的变动
    手机端小问题整理
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6935752.html
Copyright © 2011-2022 走看看