event EventHandler PrintEventHandle;
private void PrintA(object sender, EventArgs e) { Console.WriteLine("A"); }
PrintEventHandle += PrintA;
PrintEventHandle(null,null);
this.Load(null, null);
调用 PrintEventHandle(null,null); 以上编译没问题,但编译执行以下代码 this.Load(null, null);
System.Windows.Forms.Form.Load 是 OnLoad 事件的桩,不是方法
事件只能由定义它的类来调用,哪怕是继承下来的也不可以。 不过windows控件的事件XXX一般都带有一个叫OnXXX的方法,可以用来手动触发。
event 关键字帮你对事件进行保护,编译器保证外部的模块不能随便修改(例如=号赋值)委托,也不能直接调用委托(只有声明它的对象才能触发它)。保证了安全,给你在编译时检查出来编程设计错误。
111,092
社区成员
642,554
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧