class InferenceAndContravariance
{
static void LogPlainEvent(object sender, EventArgs e) //sender 是按钮的表示, EventArgs 是输入方式,如果是鼠标点击//就是坐标 还有左键, 空格键就是 32 输入a EventArgs 是97 , 输入1 就是49, 对键盘的部分键有响应 处理所有的事件//第一个参数是object类型,代表事件的来源,第二个参数则负责携带与事件有关任何额外信息,类型派生自 EventArgs
{
Console.WriteLine ("An event occurred");
}
static void Main()
{
Button button = new Button();
button.Text = "Click me";
button.Click += LogPlainEvent; //使用方法组转换 有一个EventArgs参数
button.KeyPress += LogPlainEvent; //使用转换和逆变性
button.MouseClick += LogPlainEvent; //使用转换和逆变性
Form form = new Form();
form.AutoSize = true;
form.Controls.Add(button);
Application.Run(form);
}
}
输出 看是空格 还是回车 还是鼠标点击 还有键盘的部分按键
点击出现 两次 An event occurred
回车 出现 一次 An event occurred
按空格 出现 一次 An event occurred
本文介绍了一个C#程序示例,展示了如何通过事件处理机制为不同类型的事件(如按钮点击、按键按下和鼠标点击)注册相同的事件处理方法,并利用逆变性简化事件处理流程。
1185

被折叠的 条评论
为什么被折叠?



