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