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

  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/sailing92/p/13621615.html
Copyright © 2011-2022 走看看