EventArgs的一点变化

转自:http://www.it165.net/pro/html/201308/6751.html

这只是一个很小的状况,但为了怕年纪大忘记就写篇文记录一下。

        在 .Net 2.0 时代出现的 EventHandler<TEventArgs> 委派中本来 TEventArgs 是有泛型约束,要求该泛型型别必须是 EventArgs 的衍生类别,在 2.0 ~ 4.0 时代这个委派的宣告是长这样的 :

 

1. [SerializableAttribute]
2. public delegate void EventHandler<TEventArgs>(
3. Object sender,
4. TEventArgs e
5. )
6. where TEventArgs : EventArgs

        今天正好打开 Visual Studio 2012 要写个宣告此委派的错误范例,于是我写了以下的程序代码 www.it165.net

 

1. public event EventHandler<int> TestEvent;

        在我按下建置的那一刻满心期待出现『型别 'int' 不能做为泛型型别或方法 'System.EventHandler<TEventArgs>' 中的型别参数 』这个错误讯息,结果居然编译过了,当场傻眼。于是我就把 MSDN 文件库打开来重新查一遍,发现在 .Net 4.5 的 EventHandler<TEventArgs> 委派宣告变成了 :

 

1. [SerializableAttribute]
2. public delegate void EventHandler<TEventArgs>(
3. Object sender,
4. TEventArgs e
5. )

        在 4.5 版把泛型别约束拿掉了,所以再也不需要强制一定得继承 EventArgs 类别了,这只是个很小的状况,写个文留念一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值