zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    karto 资料
    底盘运动学
    QT中搜索文件列表
    Qt中引入boost库
    AGV调度理论链接
    qt开发杂记
    C++代码读取ping的网络延时
    结构体解析数据
    QJson 的简单使用
    Vue中问题总结 与未解决问题总结
  • 原文地址:https://www.cnblogs.com/SeNaiTes/p/9518781.html
Copyright © 2011-2022 走看看