c# 观察者模式 匿名方法与Lambda

时间:2023-03-10 05:36:36
c# 观察者模式 匿名方法与Lambda
//匿名方法
//和委托搭配使用
//方便我们快速对委托进行传参
//不需要我们去定义一个新的函数
//直接用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,一定要加上花括号;