1 using System; 2 using System.Timers; 3 4 namespace SimpleEventTest 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 {10 Timer timer = new Timer();//实例化一个timer11 Boy boy = new Boy();//实例化一个boy12 Girl girl = new Girl();//实例化一个girl13 timer.Elapsed += boy.Act;//关联事件14 timer.Elapsed += girl.Act;15 timer.Interval = 1000;16 timer.Start();//运行timer,一旦满足条件自动触发被关联的方法; 17 Console.ReadLine();18 }19 }20 class Boy21 {22 private int count = 0;23 internal void Act(object sender, ElapsedEventArgs e)24 {25 count++;26 Console.WriteLine("Boy:Jump>>>"+count);27 }28 }29 class Girl30 {31 private int count = 0;32 internal void Act(object sender, ElapsedEventArgs e)33 {34 count++;35 Console.WriteLine("Girl:Jump>>>" + count);36 }37 }38 }
运行的效果:
值得注意的一些技巧:
1.用来相应事件的方法命名最好取名有意义:比如上面的Action();
2.当我们新建一个空的Boy类时,直接先写实例boy的boy.Action,会提示红色波浪线;
自动生成Act方法,且符合事件的签名;
示例2:这是一Windows窗体应用程序。
现在Form1上创建一个button1,一个label1,共2个控件。然后双击button1,此时VS会自动帮我们生产一个按钮事件,在事件代码下我们写上:
---
4 事件的思维导图
最后分享两幅事件的思维导图:
---
请使用目前所学习的主要知识委托与事件完成如下项目的编程;
模拟一个主从对答机,打开是一个Main窗口,然后从Main窗口可以创建多个子窗口;接下来,主窗口和子窗口之间进行信息发送,而主窗口可以实现广播所有子窗口;
参考效果如下:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!