C#——添加事件

委托与事件,主要说明如何自定义事件,就举一个最简单的额例子。

自己写的一个类,在类中定义成员、属性以及方法,现在想要监视其中一个成员的变化,成员的value一旦变化就执行相应的程序。

具体写法:

 //用来指示是否有新消息传入 值改变,就表示有信息入
        int msgIn=1;
        public delegate void Umsg(object sender);//, EventArgs e);
        public event Umsg msgCome;

        public int MsgIn
        {
            get { return msgIn; }
            set 
            {
                if(msgIn!=value)
                {
                    while (msgCome == null)
                    {
                        Thread.Sleep(100);
                    }
                    msgCome(this);//, new EventArgs());
                }
                msgIn = value; 
            }
        }

说明两点,第一事件的定义是在类中定义的,事件的使用是需要注册的,注册的代码不是在类中注册,而是在使用这个类的时候注册。

注册语句格式如下:

ServerMessage.msgCome += new msgDialogue.Umsg(SetText);

SetText是一个函数,也就是说事件触发时,执行这个函数。这也说明,事件定义并没有制定事件的处理方式,而事件注册时才说明事件的处理方式。

 

当改变msgIn时不会触发事件,必须写大写的MsgIn

posted @ 2014-09-11 21:53  沙中世界  阅读(1441)  评论(0)    收藏  举报