下面开始对事件进行介绍1、定义事件以及事件的编译原理首先定义事件对应的委托:1 public delegate void ThreeClickEventDel(); 然后对应事件变量:(其实就是在委托前面加一个event)public event ThreeClickEven ...
下面开始对事件进行介绍
1、定义事件以及事件的编译原理
首先定义事件对应的委托:
1 public delegate void ThreeClickEventDel();
1 //定义一个委托 2 public delegate void JingGaoDel(); 3 class Program 4 { 5 static void Main(get='_blank'>string[] args) 6 { 7 GuoluFang Guolu = new GuoluFang(); 8 //为 委托注册 事件 9 Guolu.jingGao = delegate()10 {11 Console.WriteLine("水已经烧开了!");12 };13 for (int i = 0; i <100; i++)14 {15 Guolu.ShaoShui();16 }17 Console.ReadKey();18 }19 }
为什么衍生事件:
1、因为事件只能通过“+=”和“-=”进行赋值,所以可以避免像委托那样(可能用“=”赋值将原有的事件冲掉)。
2、事件虽然是public 定义的,但是会编译成“私有的委托”,所以事件只能在类的内部被调用,类的实例不能被调用。
4、使用事件的练习(窥探微软 的事件)
创建验证控件:
添加一个UserControl控件,设计如下:
写后台代码:
控件后台代码
1 private void Form1_Load(object sender, EventArgs e) 2 { 3 //注册事件 4 userVilidateControl1.UserViliDating += new UserVilidateDel(userVilidateControl1_UserViliDating); 5 } 6 7 //创建对应方法事件 8 void userVilidateControl1_UserViliDating(object sender, MyEventArgs e) 9 {10 if (e.UserName == "admin" && e.Pwd == "123")11 {12 e.IsSuccess = true;13 }14 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:c#之委托和事件的区别
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。