C#自定义事件及用法实例
程序员文章站
2022-03-22 14:26:32
本文实例讲述了c#自定义事件及用法。分享给大家供大家参考。具体分析如下:
事件是c#中一个重要的内容,msdn上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一...
本文实例讲述了c#自定义事件及用法。分享给大家供大家参考。具体分析如下:
事件是c#中一个重要的内容,msdn上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了。看代码有时候比看文档来得更快。
所以还是一贯的原则,来干的,不来稀的。
using system; namespace testeventargs { /// <summary> /// 这个类对应于eventargs,做对比学习。 /// 添加两个内容:info1,info2。 /// </summary> public class myeventargs : eventargs { private string info1; private uint32 info2; public myeventargs(string info1, uint32 info2) { this.info1 = info1; this.info2 = info2; } public string info1 { get { return this.info1; } set { this.info1 = value; } } public uint32 info2 { get { return this.info2; } set { this.info2 = value; } } } /// <summary> /// 仿真button按钮 /// </summary> public class mybutton { public delegate void myevnethandler(object sender, myeventargs e); /// <summary> /// 按钮点击的次数计数器 /// </summary> public static uint32 clicked_num = 0; public event myevnethandler myclick; public void 触发() { myeventargs arg = new myeventargs(datetime.utcnow.tostring(), ++clicked_num); myclick(this, arg); } } /// <summary> /// 仿真form窗体 /// </summary> public class myform { public mybutton 按钮; public myform() { 按钮 = new mybutton(); 按钮.myclick += new mybutton.myevnethandler(this.button_clicked); } public void button_clicked(object sender, myeventargs e) { console.writeline("button clicked(sender is:" + sender.tostring() + "; info1 = " + e.info1 + "; info2 = " + e.info2); } } class program { static void main(string[] args) { myform 窗体 = new myform(); for (int i = 0; i < 10; i++ ) { 窗体.按钮.触发(); system.threading.thread.sleep(500); } console.writeline("press any key to continue..."); console.readkey(); } } }
希望本文所述对大家的c#程序设计有所帮助。