大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 其他相关 -> C#事件机制归纳(下)

C#事件机制归纳(下)

时间: 2021-07-31 作者:daque

  3.c#中预订义事变处置办法     进修事变,我感触最不好领会的即是c#中预订义了事变,使我才发端进修事变时一头雾水。在查了些材料后,毕竟弄领会了少许,如次: eventargs是包括事变数据的类的基类,用来传播事变的详细。 eventhandler是一个委派证明如次(其在.net类库中如次证明的) public delegate void eventhandler( object sender , eventargs e ) 以是,一切形如:  void 函娄名(object 参数名,eventargs 参数名); 的因变量都不妨动作control类的click事变相应本领了。如底下所设置的一个事变相应本领: private void button1_click(object sender, system.eventargs e) 参数object sender表白激励事变的东西,(本来这边传播的是东西的援用,即使是button1的click事变则sender即是button1)system.eventargs e 代办事变的相映消息,如鼠目标x,y值等。 底下咱们接洽一下button类看看个中的事变证明,以click事变为例。 public event eventhandler click; 这边设置了一个eventhandler典型的事变click private void button1_click(object sender, system.eventargs e)          {                    ...              } 这是咱们和button1_click事变所对应的本领。提防本领的参数适合委派中的出面(既参数列表)。那咱们如何把这个本领和事变接洽起来呢,请看底下的代码。 this.button1.click += new system.eventhandler(this.button1_click); (本来button1.click 为system.eventhandler萎任的范例事变。与萎任中萎任范例委派给某一本领特殊一致) 把this.button1_click本领绑定到this.button1.click事变。     4.事变的参数的运用。 using system;   class class1 {        static void main()        {                student s1=new student();                s1.name ="student1";                student s2=new student();                s2.name ="student2";               s1.registerok +=new student.delegateregisterokevent(student_registerok);                s2.registerok +=new student.delegateregisterokevent(student_registerok);                  //当register本领一实行,触发registerok事变                //registerok事变一触发,而后实行student_registerok本领                s1.register();                 s2.register();               console.readline();        }        static void student_registerok(registerokargs e)        {               console.writeline(e.eventinfo);        } }   class student {        public delegate void delegateregisterokevent(registerokargs e);        public event delegateregisterokevent registerok;        public string name;        public void register()        {               console.writeline("register method");               registerok(new registerokargs("student name: "+name));        } } class registerokargs:eventargs {        public string eventinfo;        public registerokargs(string eventinfo):base()        {               this.eventinfo =eventinfo;        } }

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.