请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 2913|回复: 2

事件,委托,3点总结

[复制链接]

该用户从未签到

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2015-11-19 22:23:55 | 显示全部楼层 |阅读模式

马上加入IBC,查看更多教程

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
[C#] 纯文本查看 复制代码
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();
        }
    }
}

  • TA的每日心情
    开心
    前天 19:06
  • 签到天数: 1469 天

    [LV.10]以坛为家III

    1177

    主题

    3082

    帖子

    9万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    94058

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-12-14 17:55:49 | 显示全部楼层
    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区

    该用户从未签到

    0

    主题

    3

    帖子

    14

    积分

    新手上路

    Rank: 1

    积分
    14
    发表于 2016-1-5 15:33:28 | 显示全部楼层
    有点意思哈 ------
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则