c# 事件和委托

 

        public static string str = string.Empty;
        private void Border_MouseLeftButtonUp_3(object sender, MouseButtonEventArgs e)
        {
            /* 实例化对象,第一次没有触发事件, 因为对象中的 ChangeNum 事件没有绑定(注册)事件*/
            EventTest es = new EventTest(); 
            es.SetValue();
            subscribEvent v = new subscribEvent();
            /* 注册事件:将 subscribEvent 类中的普通方法绑定(注册)到 EventTest 类中定义的 ChangeNum 事件。*/
            es.ChangeNum += new EventTest.NumManipulationHandler(v.printf); 
            es.SetValue();
        }

        #region 事件
        /***********发布器类***********/
        public class EventTest
        {
            public delegate void NumManipulationHandler();
            public event NumManipulationHandler ChangeNum;
            public void OnNumChanged()
            {
                if (ChangeNum != null)
                {
                    /* 事件被触发,执行与事件绑定(注册)的方法*/
                    ChangeNum(); 
                }
                else
                {
                    str += "事件没有被触发!";
                }
            }
            public EventTest()
            {
                SetValue();
            }
            public void SetValue()
            {
                OnNumChanged();
            }
        }
        /***********订阅器类***********/
        public class subscribEvent
        {
            /*普通方法*/
            public void printf()
            {
                str += "触发了事件!";
            }
        }
        #endregion

 

转载于:https://www.cnblogs.com/SeNaiTes/p/9518781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值