圣淘程序猿 发表于 2015-11-19 22:23:55

事件,委托,3点总结

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();
      }
    }
}

ibcadmin 发表于 2015-12-14 17:55:49

{:3_46:}

Ainy 发表于 2016-1-5 15:33:28

有点意思哈 ------
页: [1]
查看完整版本: 事件,委托,3点总结