1.定义事件参数类
class MyEventArgs:EventArgs //事件参数类
private string keyChar; //键值
public string KeyChar
{
get { return keyChar; }
}
public MyEventArgs(string keyChar)
{
this.keyChar = keyChar;
}
}
2.定义用户输入监视器类
class UserInputMonitor
{
public delegate void UserRequest(object sender, MyEventArgs e);
public event UserRequest OnUserRequest;
public void Run()
{
bool finished = false;
do
{
string inputString = Console.ReadLine();
if (inputString != "")
{
OnUserRequest(this, new MyEventArgs(inputString));
}
} while (!finished);
}
}
3.
public class Client
{
public static void Main()
{
UserInputMonitor monitor = new UserInputMonitor();
new Client(monitor);
monitor.Run();
}
private void ShowMessage(object sender,MyEventArgs e)
{
Console.WriteLine("捕捉到:{0}",e.KeyChar);
}
Client(UserInputMonitor m)
{
m.OnUserRequest += new UserInputMonitor.UserRequest(this.ShowMessage);
}
}