C#中关键字event的作用

C# Event关键字解析
本文通过一个具体的C#示例代码讲解了event关键字的作用及使用规范。event关键字限制了对外界对委托变量的操作,仅允许使用+=或-=操作符,并且推荐使用返回值为void的委托类型。
C#用户可能会发现,event关键字有时候可有可无。

namespace ConsoleApplication3 { class Program { static void Main(string[] args) { MyClass1 obj = new MyClass1(); obj.AEvent += new EventHandler(MyEventHandler); //obj.AEvent(); obj.FireEvent(); obj.AEvent -= new EventHandler(MyEventHandler); obj.FireEvent(); } public static int MyEventHandler() { Console.WriteLine("Event"); return 0; } } public delegate int EventHandler(); class MyClass1 { public /*event*/ EventHandler AEvent; public void FireEvent() { if (AEvent != null) { AEvent(); } } } }
如上源码,event关键字有无的效果一样。那么event关键字的作用到底是什么呢?就是那句obj.AEvent()。如果使用了关键字event,那么这句在编译时将报错,而如果没有使用关键字event,则编译正常。event关键字,限定了外界对委托变量只能使用+=或-=操作符,对于其他的比如赋值或者调用都会被视为错误。另外,据说event关键字限定的委托最好是返回值为void的类型,当然这只是推荐,没有强制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值