你的位置:首页 > ASP.net教程

[ASP.net教程]C#事件的简单认识1


EventArgs 类,表示包含事件数据的类的基类,并提供要用于不包含事件数据的事件的值。

 当需要定义的事件中包含事件数据时,可以从EventArgs 选件类派生自定义事件数据类;代码及结果如下:

 public class InviteEventArgs:EventArgs //自定义事件类  {    public string Message;    public InviteEventArgs(string msg) //构造函数,传入参数    {      Message = msg;    }  }  public class Yiqiok      //事件发布者  {    public delegate void InviteHandler(object sender, InviteEventArgs e); // 自定义委托类型    public event InviteHandler LolInvite; //使用自定义的委托类型定义事件    public void InviteComing(string msg) //发出事件    {      if(LolInvite!=null)  //检查是否添加了事件处理方法      {       //  Console.WriteLine(msg);        LolInvite(this, new InviteEventArgs(msg)); //触发事件      }    }      }  public class Classmate //事件订阅者  {    private string name;    public Classmate (string Name)    {      name = Name;    }    public void SendResponse(object s,InviteEventArgs e) //事件处理函数,要与自定义委托类型匹配    {      Console.WriteLine(e.Message);      Console.WriteLine("来自:" + this.name + "的回复: 已经收到邀请,随时可以开始!");    }  }  public class Start  {    static void Main()    {      Yiqiok yiqiok = new Yiqiok();//初始化      Classmate classmate1 = new Classmate("Lna");      Classmate classmate2 = new Classmate("Jim");      Classmate classmate3 = new Classmate("Cry");      Classmate classmate4 = new Classmate("Tom");      yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate1.SendResponse);//订阅事件      yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate2.SendResponse);      yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate3.SendResponse);      yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate4.SendResponse);      yiqiok.InviteComing("yiqiok:五人开黑来不来???"); //发出通知    }  }

结果:

     

更多细节参考MSDN