C# 事件机制

作为一个学习java的人,很少遇到event这样的机制,遇到什么就直接调用不就好了? 为什么要费尽心机的去注册事件呢?希望大神能解答一下,这里仅对C#的event的写法进行记录

第一步:声明eventHandler和event
    class myTestEvent
    {
        private int value;
        //声明了一个名为“myFirstEventHandler”的eventHandler
        public delegate void myFirstEventHandler();
        //然后再用此hander去声明event
        public event myFirstEventHandler myFirstEvent;
    }
第二步,在上面的类中,写event触发的条件
public void onChangedNum()
{
	//只有当事件存在的时候,才执行事件
    if (myFirstEvent != null)
    {
        myFirstEvent();/*事件触发*/
    }
    else
    {
        Console.WriteLine("event not fire");
        Console.ReadKey();//回车继续
    }
}
第三步,新建立一个类,写要被注册到事件的函数,也就是执行event时所执行的函数
    class subscribe
    {
        public void prinf()
        {
            Console.WriteLine("event fire");
            Console.ReadKey();
        }
    }
第四步,测试
        static void Main(string[] args)
        {
            myTestEvent mte = new myTestEvent();
            subscribe sb = new subscribe();
            mte.onChangedNum();
            //这里看清楚,是new了一个eventHandler,并且把函数注册了进去
            //然后加到了事件的后面
            mte.myFirstEvent += new myTestEvent.myFirstEventHandler(sb.prinf);
            mte.onChangedNum();
            mte.onChangedNum();
        }

结果如下
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值