zoukankan      html  css  js  c++  java
  • C#中的委托是什么

    1.什么是委托?(方法作另一个方法的参数)
    delegate void MyDel(int value);    //声明委托类型
    和类一样,委托是用户自定义的类型,但是类是数据和方法的集合,而委托是持有一个或多个方法。
    delegate可以看做是一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型。
    委托保存的方法可以来自任何类或结构
    调用列表中的方法可以是实例方法也可以是静态方法
    调用委托时,会执行调用列表中的所有方法


    2.声明委托类型
    delegate    void      MyDel        (int value);委托的是无返回值,且单一int参数的方法
    关键字    返回类型    委托类签名      签名

    3.创建委托对象
    MyDel       delVar;
    委托类型     变量
    delVar = new MyDel(myInstObj.MyM1);    或    delVar = myInstObj.MyM1;
    delVar = new MyDel(sClass.otherM2);    或    delVar = sClass.otherM2;

    4.组合委托
    MyDel a = myInstObj.myM1;
    MyDel b = SClass.OtherM2;
    MyDel c = a + b;

    5.为委托添加方法+=  同理删除方法: -=
    MyDel delVar = inst.myM1;    //创建并初始化
    delVar += Scl.m3;
    delVar += X.Act;

    6.调用委托(从底部函数开始执行)
    MyDel delVar = inst.MyM1;
    delVar(55);

    7.调用带返回值的委托
    最后一个方法的返回值就是委托调用返回的值,其他方法的返回值会被忽略

    8.调用带引用参数的委托
    参数值会根据调用列表中的一个或多个方法的返回值而改变

    9.匿名方法
    在初始化委托时内联声明的方法
    delegate   (Parameters)    {ImplementationCode}
    关键字      参数列表        语句块
    delegate int OtherDel(int Inparam);
    static void Main()
    {
        OtherDel del = delegate(int x)
        {
            return x + 20;
        };
    }

  • 相关阅读:
    商务邮件
    比较好用的办公软件
    django之创建第6-2个项目-过滤器列表
    Linux管道思想
    django之创建站点之基本流程
    django资料
    Django之 创建第一个站点
    python之获取微信服务器的ip地址
    python之获取微信access_token
    python之模块py_compile用法(将py文件转换为pyc文件)
  • 原文地址:https://www.cnblogs.com/deepalley/p/12150931.html
Copyright © 2011-2022 走看看