首页 > 学院 > 开发设计 > 正文

C#事件的简单认识1

2019-11-17 02:30:21
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表