zoukankan      html  css  js  c++  java
  • C#图解教程读书笔记(第15章 委托)

    委托是C#的一个很重要的知识点。

    1、什么是委托

    委托在我认为,就是一系列格式相同的方法列表,可能就是定义的名称不一致,参数、返回值等都是一样的。

    2、如何声明委托

    delegate void MyFunc( int x );

    delegate是声明委托的关键字,void是返回值,int x是函数的参数,MyFunc是委托的类型名。

    3、创建委托对象

    MyFunc funcTest;//声明委托

    4、创建委托的标准形式

    funcTest = new MyFunc(Test);

    5、创建委托的简写

    funcTest = Test;

    6、委托方法的赋值

    ①直接赋值

    funcTest = Test1;

    funcTest = Test2;

    如果是直接赋值的委托,重新赋值之后,将无法调用之前所赋的值。

    ②组合委托

    MyFunc funcTest1 = Test1;

    MyFunc funcTest2 = Test2;

    MyFunc funcTest3 = funcTest1 + funcTest2;

    但是,如果是组合委托即加法形式,则是增加委托列表的函数。

    ③增加委托方法

    funcTest += Test2;

    ④删除委托方法

    funcTest -= Test1;

    7、委托会依次调用队列里面的方法,然后最后输出结果哦

    8、委托的方法有三种方式

    class TestDel

    {

    static void func1( int a);

    void func2(int b);

    }

    ①静态方法

    funcTest = TestDel.func1;

    ②实例化的方法

    TestDel cTest = new TestDel();

    funcTest = cTest.func2;

    ③匿名方法

    funcTest = delegate( int x ){//实现代码};

    9、Lambda表达式

    Lambda表达式的简洁,像最简写的的Lambda表达式,可以把

    funcTest = delegate( int x){return x+1;};

    简写为

    funcTest = x => x+1;

    说真的,刚开始一直知道有Lambda和Linq这两样东西,但是一直都下不下决心去看,这次也正好趁这个机会,好好地看一下。

    虽然只是列了一下大概的知识点,但是,也算是看完了,哇哈哈

  • 相关阅读:
    sql优化
    es和solr
    RabbitMQ 整理
    redis分布式缓存
    redis集群
    drf-jwt第三方插件,DRF的三大认证的具体使用,多方式登陆的实现
    自定义路由组件,Django的admin后台管理,DRF的三大认证,jwt认证
    DRF视图家族
    导包补充,深度查询(深度序列化),十大接口
    三流,内部类,基表,表关系,断开表关联,外键字段属性
  • 原文地址:https://www.cnblogs.com/pengjia89/p/3615033.html
Copyright © 2011-2022 走看看