定义事件的顺序: 1、写事件参数类; 2、写事件发起者,定义关联到事件接收者的事件; 3、写事件的接收者,具体讲是定义事件的具体动作; //今天很热,写一个开风扇的事件 using System; class KaiEventArgs:EventArgs//定义事件参数 { private readonly char keyChar; public KaiEventArgs(char c):base() { this.keyChar=c; } public char KeyChar { get{return keyChar;} } } class KaiFengshan//事件发起者,我 { public delegate void KaiHandler(object sender,KaiEventArgs e);//定义事件委托 public event KaiHandler OnKaiEvent;//定义触发的事件 public void kai()//我打开风扇 { Console.WriteLine("please Press the KaiGuan"); string response=Console.ReadLine(); char responseChar= ( response == "" ) ? ' ' : char.ToUpper( response[0] ); KaiEventArgs e=new KaiEventArgs(responseChar); if(OnKaiEvent!=null) { OnKaiEvent(this,e); } } } class EventReceiver//风扇 { public void receive(object sender,KaiEventArgs e)//接受我的事件 { if(e.KeyChar=='K') { Console.WriteLine("哈哈哈,我转动起来了"); } else { Console.WriteLine("哈哈哈,你按错了,你应该按K"); } } static void Main(string[] args) { KaiFengshan kai=new KaiFengshan(); EventReceiver r=new EventReceiver(); kai.OnKaiEvent+=new KaiFengshan.KaiHandler(r.receive); kai.kai(); } }