//匿名方法
//和委托搭配使用
//方便我们快速对委托进行传参
//不需要我们去定义一个新的函数
//直接用delegate关键字代替方法名,后面跟上参数列表与方法体 //delegate(参数列表){方法体} //Sort(list, delegate (int a, int b) { return a > b; }); //lambda表达式 匿名方法的升级
//更加简写
//(参数列表)=>{ 方法体 }
//当你的方法体只有一条语句的时候,可以不写return,甚至可以没有花括号
//参数列表的参数甚至可以不写数据类型
//如果说方法体里一旦出现了return,一定要加上花括号 Sort(list, (a, b) => a < b);

观测者模式
  模型——视图
  发布——订阅
  源——收听者

  一系列对象来监听另外一个对象的行为,被监听者一旦触发事件/发布消息,
  则被所有监听者收到,然后执行自己的行为

  就是使用委托/事件,让一系列对象把他们的行为来注册到我的委托中去,
  什么时候执行这个委托,由我自身决定,外部不能干涉

  (就相当于观察别人的行为作出对应的反应,例子:当有人打你的时候,你要还手,走进你的攻击范围你要打他,一旦触发了某些条件,作出对应的事情)

匿名方法
  和委托搭配使用
  方便我们快速对委托进行传参
  不需要我们去定义一个新的函数
  直接用delegate关键字代替方法名,后面跟上参数列表与方法体

  delegate(参数列表){方法体}

lambda表达式 匿名方法的升级
  更加简写
  (参数列表)=>{ 方法体 }
  当你的方法体只有一条语句的时候,可以不写return,甚至可以没有花括号
  参数列表的参数甚至可以不写数据类型
  如果说方法体里一旦出现了return,一定要加上花括号;

c# 观察者模式 匿名方法与Lambda的更多相关文章

  1. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  2. 从匿名方法到 Lambda 表达式的推演过程

    Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数. 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数. 以上是msdn官网对Lambda 表达式 ...

  3. 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

    引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...

  4. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...

  5. C# 从CIL代码了解委托,匿名方法,Lambda 表达式和闭包本质

    前言 C# 3.0 引入了 Lambda 表达式,程序员们很快就开始习惯并爱上这种简洁并极具表达力的函数式编程特性. 本着知其然,还要知其所以然的学习态度,笔者不禁想到了几个问题. (1)匿名函数(匿 ...

  6. 委托、匿名方法、Lambda表达式的演进

    摘自:"http://www.cnblogs.com/eagle1986/archive/2012/01/19/2327358.html 假设给我们一个泛型对象List<T>,T ...

  7. 委托,匿名方法,Lambda,泛型委托,表达式树

    一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step0 ...

  8. 匿名方法,Lambda表达式,高阶函数

    原文:匿名方法,Lambda表达式,高阶函数 匿名方法 c#2.0引入匿名方法,不必创建单独的方法,因此减少了所需的编码系统开销. 常用于将委托和匿名方法关联,例如1. 使用委托和方法关联: this ...

  9. Fun<>,匿名方法,Lambda表达式 冒泡排序C#

    大头文 分享,进步 冒泡排序C#实现,使用委托,包括三种方式:Fun<>,匿名方法,Lambda表达式 冒泡排序是一种简单的排序方法,适合于小量数字排序,对于大量数字(超过10个),还有更 ...

随机推荐

  1. 08_java基础知识——方法重载

    一.自变量顺序不同 package com.huawei.test.java04; /** * This is Description * * @author 王明飞 * @date 2018/08/ ...

  2. 配置trunk

    SW1 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(c ...

  3. UGUI学习——Canvas基础组件

    UGUI的分辨率自适应的机制 UGUI中,Canvas(画布)可以看成电脑屏幕,其功能和属性都是一样的.游戏中的分辨率自适应主要包括两部分: 1. 缩放适应:是在不同尺寸的屏幕下,整体缩放比例的计算方 ...

  4. tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案 ZT

    错误代码如下: 严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFException ...

  5. 非root用户安装python3

    1.下载源码 wget -c https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 解压: tar xzf Python-3.7.1.tgz ...

  6. Tomcat出现 java.net.ConnectException: Connection refused 异常的原因及解决方法

    原因有2. ------------------ 端口被占用 --------------------数据库链接失败导致的异常 cmd 查看 端口占用情况 检查数据库服务是否启动 --------此次 ...

  7. AJAX 应用

    ajax简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.Ajax不是一种新的编程语言, ...

  8. UT源码 105032014098

    package exam1; import java.util.Scanner; public class test01 { static String nextDate(int year,int m ...

  9. iOS launchImage

    iOS launchImage https://stackoverflow.com/questions/34027270/ios-launch-screen-in-react-native 如何设置: ...

  10. django-debug-toolbar 安装及配置 django性能监控及调试

    安装: pip install django-debug-toolbar 配置: settings 配置 DEBUG = True INSTALLED_APPS = [ 'debug_toolbar' ...