zoukankan      html  css  js  c++  java
  • net基础知识点(二)

    1、委托
    1)委托是一种数据类型,可以声明委托数据类型
    委托是一种指向方法的数据类型
    2)声明委托的方式 delegate 返回值类型 委托类型名称(参数)
    比如: delegate void mydel(int n)
    3)注意这里除了前面的delegate以外,剩下的部分和声明一个函数是一样的,但是mydel不是函数名称,而是委托类型名称
    4)如何创建一个委托类型的对象,mydel sp=new mydel(sayhello)
    //sayhello需要和mydel的参数和返回值一样
    sp这个委托变量就指向sayhello这个方法了。
    5)简化的方法
    mydel sp=sayhello;
    6)委托的使用:
    委托变量之间可以相互赋值,就是一个传递指向方法的过程;sp()就是调用指向的方法,如果有参数就传入参数,可以接收对应的回参

    注意:
    =是对委托的赋值
    +=是委托的绑定
    -=是委托的绑定取消

    2、委托的应用
    方法的规整
    即在事件中,使用同一个委托的对象,不需要对修改这部分的代码。
    新增的方法,可以在对象的使用方法中进行判断和新增


    3、内置的泛型委托
    net中内置了两个泛型的委托 Func和Action
    Func 无回参
    Action 有回参
    均为泛型委托

    4、匿名方法
    匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。
    在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
    delegate void NumberChanger(int n);
    ...
    NumberChanger nc = delegate(int x)
    {
    Console.WriteLine("Anonymous Method: {0}", x);
    };


    5、lambda表达式

    自己学习,比较多


    6、集合常用的扩展方法
    where、select、Max、Min、OrderBy
    有下划线的支持委托
    First:获取第一个,如果一个都没有异常
    FirstOrDefault:获取第一个,如果一个都没有则返回默认值
    Single:获取唯一一个,如果没有或者有多个,则异常
    SingleOrDefault:获取唯一一个,如果没有则返回默认值,如果有多个则异常
    Tolist
    ToArray

    where:
    对数据按照lambda表达式中的条件进行过滤

    select:
    对数据按照lambda表达式进行数据的处理

    数据的简单函数处理
    Max、Min、Sum、Avg等等

    7、事件
    https://www.cnblogs.com/youMo/p/10360411.html
    委托和事件的区别
    https://www.cnblogs.com/darrenji/p/3967381.html

  • 相关阅读:
    arcgis中面的保存与读取显示
    ExtJs Grid分页时序号自增的实现,以及查询以后的序号的处理
    正则表达式中常用的公式
    常用的javascript日期格式化
    让toolbar.button以及formpanel中的button像个普通按钮
    extjs2.x gridpanel的数据重新加载后分页事件的一点问题
    关于C的函数指针总结
    Python各种应用库收藏
    Linux 用户(user)和用户组(group)管理概述
    linux之旅——走入Linux 世界(2)操作系统的来龙去脉
  • 原文地址:https://www.cnblogs.com/sailing92/p/13621615.html
Copyright © 2011-2022 走看看