事件是建立在委托的基础之上的。

 

http://www.cnblogs.com/lystory/p/5085786.html

 

    public class 事件参数
    {
        public 事件参数(string s) { Text = s; }
        public String Text { get; private set; } // readonly
    }

    public class 事件发布者
    {
        /// <summary>
        /// 申明一个委托
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public delegate void 委托1(object sender, 事件参数 e);

        /// <summary>
        /// 申明一个委托型事件
        /// </summary>
        public event 委托1 事件1;

        public virtual void 执行(string msg)
        {

            ///如果事件被订阅(有订阅者)传信号给订阅者(这个信息是两个参数,object sender, 事件参数 e )
            if (事件1 != null)
                事件1(this, new 事件参数(msg));
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            事件发布者 f = new 事件发布者();

            ///订阅这个事件
            f.事件1 += f_事件1;

            f.执行("帮我做一件事情");

            Console.ReadLine();

        }

        /// <summary>
        /// 事件接收者
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void f_事件1(object sender, 事件参数 e)
        {
            Console.WriteLine("我是事件接收者:你给我的命令是:{0}", e.Text);
        }

    }

 

运行结果:

 

 C#事件在编程中无处不在。我们的OnClick,其背后都是事件做出来的

 

观察者模式就是以事件为基础,还有多线程编程中,离不开事件。 

 

理解了委托就能理解事件,事件是建立在委托的基础之上。

 

参考文档

 

http://www.cnblogs.com/reommmm/archive/2009/03/23/1419573.html

posted on 2015-12-30 17:33  梦回过去  阅读(227)  评论(0编辑  收藏  举报