码迷,mamicode.com
首页 > Windows程序 > 详细

【C#】事件,委托3点详解

时间:2015-11-20 00:10:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 事件委托1
{
    //总结
    //1.事件(event)是基于委托(delegate)的,所以想要定义事件,首先要有1个委托类型,做支撑
    //2.如果有了事件,要去查找这个事件什么时候被触发,也就是这个事件什么时候被调用了(事件名称();)
    //3.事件触发的时候,支撑这个事件的委托指向了哪个方法?



    public delegate void MyDel(); //定义1个无参无返回的委托类型,这里是总结里面的第1个点的后半部分!!!

    class OnOff
    {
        public event MyDel t; //1个基于MyDel委托类型的事件,这里是总结里面的第1个点的前半部分!!!

        /// <summary>
        /// 打开开关
        /// </summary>
        public void On()
        {
            t(); //触发这个事件,这里是总结里面的第2个点!!!
        }
        
        /// <summary>
        /// 这里应该算是事件的处理器
        /// </summary>
        public void lightOn()
        {
            Console.WriteLine("灯亮了");
        }
    
    }
    
    class Program
    {
        /// <summary>
        /// 主函数
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            OnOff o = new OnOff();
            o.t += new MyDel(o.lightOn); //这里是总结里面的第3个点!!!
            Console.WriteLine("我要打开开关了啊");
            o.On(); //调用这个函数的时候会触发t事件
            Console.ReadLine();
        }
    }
}

  

【C#】事件,委托3点详解

标签:

原文地址:http://www.cnblogs.com/baixdu/p/4979289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!