C# 泛型弱事件管理器
来源:互联网 发布:js浏览器兼容 编辑:程序博客网 时间:2024/06/06 18:07
,net 4.5 为弱事件提供了新的实现。泛型类 WeakEventManager<TEventSource, TEventArgs>,它派生自基类WeakEventManager,
大大的简化了弱事件的处理
static void Main(string[] args)
{
CarDealer dealer = new CarDealer();
Consumer micheal = new Consumer("Micheal");
//是用下面两种订阅事件效果不一样
WeakEventManager<CarDealer, CarInfoEventArgs>.AddHandler(dealer, "NewCarInfo", micheal.NewCarIsHere);
//dealer.NewCarInfo += micheal.NewCarIsHere;
dealer.NewCar("Ferrari");
micheal = null;
GC.Collect();
dealer.NewCar("Ferrari");
Console.ReadLine();
}
}
public class CarInfoEventArgs:EventArgs
{
public CarInfoEventArgs(string car)
{
Car = car;
}
public string Car { get; private set; }
}
public class CarDealer
{
public event EventHandler<CarInfoEventArgs> NewCarInfo;
public void NewCar(string car)
{
Console.WriteLine("CarDealer, new car {0}", car);
RaiseNewCarInfo(car);
}
protected virtual void RaiseNewCarInfo(string car)
{
if(NewCarInfo!=null)
{
NewCarInfo(this, new CarInfoEventArgs(car));
}
}
}
public class Consumer
{
private string _name = string.Empty;
public Consumer(string name)
{
_name = name;
}
public void NewCarIsHere(object sender,CarInfoEventArgs e)
{
Console.WriteLine("{0}:Car {1} is new", _name, e.Car);
}
}
- C# 泛型弱事件管理器
- 事件管理器
- 事件管理器设计备忘录
- 事件管理器想法.
- 事件管理器设计备忘录
- 【Unity3D】 EventManager事件管理器
- 帧事件管理器
- C#实现文件管理器
- C#实现文件管理器
- C# 进程管理器
- Erlang监控事件管理器进程
- GUI布局管理器 事件处理
- DSP2812的事件管理器EV
- 【Unity3D_常用模块】 事件管理器
- cocos2dx-js 鼠标事件管理器
- quick cocos2dx 自定义事件管理器
- c# 屏蔽任务管理器 张宇轩
- C#做一个密码管理器
- Hadoop基础教程-第6章 MapReduce入门(6.1 MapReduce介绍)(草稿)
- 删除github的仓库
- 旋转矩阵、DCM、旋转向量、四元数、欧拉角相关
- Quaternion.Slerp 球形插值
- pb_pfc_全屏显示
- C# 泛型弱事件管理器
- 数字图像处理实验(14):PROJECT 06-01,Web-Safe Colors
- 缓冲区溢出攻击
- IMWeb提升营Day3 | 训练题15:反转链表
- Android 入门
- Duilib 源码分析之控件 name 篇
- 浏览器中F5、Ctrl+F5和位址栏输入的区别
- 【数据结构笔记】8:并查集:并时加权/查后折叠
- linux 更改用户及其所有的文件的组