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

  • 相关阅读:
    锻炼记录
    PHP学习笔记
    返回一个整数数组中最大子数组的和(2)
    四则运算的在线答题(判断对错,记录错题)
    返回一个二维整数数组的最大子数组的和
    返回一个整数数组中最大子数组的和
    程序2:支持真分数的四则运算
    程序1:四则运算
    四则运算3.0版本
    返回二维数组子数组和最大值
  • 原文地址:https://www.cnblogs.com/sailing92/p/13621615.html
Copyright © 2011-2022 走看看