作者:天蝎快乐公主_594 | 来源:互联网 | 2023-10-11 14:40
经过学习,终于搞清了事件的使用,以下附上一个小例子
事件主要使用三个类:
1. 参数定义类testEventArgs:继承自EventArgs(虽然EventArgs什么也不做)
2. 事件发布类monitor
3. 事件侦听类Receiver
using System;
using System.Collections.Generic;
using System.Text;namespace EventLearn
{class testArgs:EventArgs{public string msg;public testArgs(string msg){this.msg = msg;}}class monitor{public delegate void delegateHander(object sender, testArgs e);public event delegateHander pressKey;public void Run(){do{Console.WriteLine("Please press any key. Input 'exit' to finish the process!");string input=Console.ReadLine();if (input == "exit")break;pressKey(this,new testArgs(input));}while(true);}}class Receiver{public Receiver(monitor Monitor){Monitor.pressKey += new monitor.delegateHander(this.process);}public void process(object sender, testArgs e){Console.WriteLine("You have input the string: {0}", e.msg);}}
}
主程序如下:
using System;
using System.Collections.Generic;
using System.Text;namespace EventLearn
{class Program{static void Main(string[] args){monitor Monitor = new monitor();Receiver receiver = new Receiver(Monitor);Monitor.Run();Console.ReadKey();}}
}