event关键字创建了两个方法add_ *和remove_ *(它的工作方式类似于属性)。
有什么区别
public event MyDelegate event1;
public MyDelegate event2 { get; set; }
为什么要使用事件keyowrd?
答案 0 :(得分:1)
一个原因是安全。如果您实施事件,例如delegate
字段:
public MyDelegate event2 { get; set; }
你将能够做危险的事情:
MyObject test = new MyObject();
// removing all listeners
test.event2 = null;
// just a little typo `=` instead of `+=`
// means now complete substitution of the listeners instead of adding one
test.event2 = myMethod;