1
事件是属于一个特定的类的,其本质是只能在此类中调用的委托。 从面向对象的角度出发,事件是对象对某个消息的响应,因此其声明必然只能在类的级别出现,且不可用static修饰。
2
事件其实和属性差不多,是一种特殊的方法。 你想一下,你不能在方法里再定义方法吧~~ 举个例子 你定义了这么一个属性 public int A { get; set; } 实际上,编译器在后台会生成1个int类型的字段用于保存值,还有2个方法:int get_A()和void set_A(int value)分别用于获得和 设置值 同样,你定义一个事件 public event MyDelegate MyEvent; 编译器会生成一个委托的实例用于保存事件处理方法,同时还生成两个方法:
void add_MyEvent(MyDelegate event)和void remove_MyEvent(MyDelegate event)分别用于添加和删除事件