C#自定义事件及用法实例
本文实例讲述了C#自定义事件及用法。分享给大家供大家参考。具体分析如下:
事件是C#中一个重要的内容,MSDN上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了。看代码有时候比看文档来得更快。
所以还是一贯的原则,来干的,不来稀的。
usingSystem; namespaceTestEventArgs { ///<summary> ///这个类对应于EventArgs,做对比学习。 ///添加两个内容:info1,info2。 ///</summary> publicclassMyEventArgs:EventArgs { privateStringinfo1; privateUInt32info2; publicMyEventArgs(Stringinfo1,UInt32info2) { this.info1=info1; this.info2=info2; } publicStringInfo1 { get{returnthis.info1;} set{this.info1=value;} } publicUInt32Info2 { get{returnthis.info2;} set{this.info2=value;} } } ///<summary> ///仿真Button按钮 ///</summary> publicclassMyButton { publicdelegatevoidMyEvnetHandler(objectsender,MyEventArgse); ///<summary> ///按钮点击的次数计数器 ///</summary> publicstaticUInt32clicked_num=0; publiceventMyEvnetHandlerMyClick; publicvoid触发() { MyEventArgsarg=newMyEventArgs(DateTime.UtcNow.ToString(),++clicked_num); MyClick(this,arg); } } ///<summary> ///仿真Form窗体 ///</summary> publicclassMyForm { publicMyButton按钮; publicMyForm() { 按钮=newMyButton(); 按钮.MyClick+=newMyButton.MyEvnetHandler(this.button_Clicked); } publicvoidbutton_Clicked(objectsender,MyEventArgse) { Console.WriteLine("buttonclicked(senderis:"+sender.ToString()+";info1=" +e.Info1+";info2="+e.Info2); } } classProgram { staticvoidMain(string[]args) { MyForm窗体=newMyForm(); for(inti=0;i<10;i++) { 窗体.按钮.触发(); System.Threading.Thread.Sleep(500); } Console.WriteLine("Pressanykeytocontinue..."); Console.ReadKey(); } } }
希望本文所述对大家的C#程序设计有所帮助。