委托与事件总结
来源:互联网 发布:手动剃须刀推荐知乎 编辑:程序博客网 时间:2024/05/22 00:49
委托,描述具有相同 返回值类型和传入参数列表(参数个数及类型) 的一类方法(方法的签名),将方法当作参数传递到另一个方法中,并可以在方法中调用传入方法
事件,是对委托的封装,要求满足委托所定义的类型的方法才能被调用执行
观察者模式
-优点:低耦合
-观察者模式下,由观察者接收订阅者的订阅(方法),当观察者发现条件满足时(规定的触发条件),执行已订阅的方法重点内容
给添加事件添加方法的三种方法类型
ob.BossComeingByName += ob_BossComeingByName;
//一般方法 ob.BossComeingByName += delegate(string name)
//匿名方法
{
Console.WriteLine(name + " Comeing(匿名方法)");
}; ob.BossComeingByName += name =>//lambda方法(goes to)
{
Console.WriteLine(name + " Comeing(lambda方法)");
};
源代码
class Program { /// <summary> /// 观察者模式 /// 优点:低耦合 /// </summary> /// <param name="args"></param> static void Main(string[] args) { Observer xiaoli = new Observer();//实例化观察者 Reciver xiaogzhang = new Reciver("睡觉");//实例化订阅者 Reciver xiaokei = new Reciver("扣手机"); xiaoli.WatchBossDone += xiaogzhang.ReadyToWork;//添加方法(订阅) xiaoli.WatchBossDone += xiaokei.ReadyToWork; xiaoli.WatchBoss(true);//触发方法,执行订阅事件 Console.ReadLine(); } }
public delegate void WatchBossHandle();//委托 public class Observer//观察者 { public event WatchBossHandle WatchBossDone;//事件 public void WatchBoss(bool isComeing)//触发方法 { if (isComeing) { if (WatchBossDone != null) { WatchBossDone();//事件执行订阅方法 } } } }
public class Reciver//接受者 { public string State{get;set;} public Reciver(string state)//构造函数,实例化时要求传入参数 { this.State = state; } public void ReadyToWork()//要订阅的方法 { Console.WriteLine("我在{0},老板来了,我要开始工作",this.State); } }
0 0
- 委托与事件总结
- 委托与事件总结
- C#委托与事件的总结
- 黑马程序员---------委托与事件个人总结
- [自学问题总结]委托与事件
- 委托入门-事件与委托
- 学习委托与事件的总结,附上一个例子
- C#中的委托与事件详解<个人总结>
- 委托与事件
- 委托与事件
- c# 委托与事件
- 委托与事件
- 事件与委托详解
- 委托与事件详解
- 委托与事件详解
- 委托与事件
- C#委托与事件
- 委托与事件
- NDK-JNI实战教程(四)再谈新工具及NDK开发调试
- HTML学习之网页制作基础和常用标签及标签属性
- 算法——排序——归并排序
- TCP/IP(三)IP协议,ARP协议,RARP协议
- 剑指offer系列之31:把数组排成最小的数
- 委托与事件总结
- SELinux/apache
- u3d 修改新的C#脚本模板-NewBehaviourScript.c
- LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择
- VIJOS 1477 跳动的水珠
- Java面试题:栈和队列的实现
- Android proguard 详解
- 浅谈UML的概念和模型之UML九种图
- struts 常用代码