首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

关于全局变量变量响应机制步骤

2013-02-24 
关于全局变量变量响应机制方法关于全局变量变量响应机制方法在软件开发系统中,如果定义一个全局变量,当变

关于全局变量变量响应机制方法

关于全局变量变量响应机制方法
在软件开发系统中,如果定义一个全局变量,当变量发生变化时,希望所有使用此变量的按钮或其他控件也能随变量值不同,而产生相应的变化的。这样系统执行过程不会产生延时,或数据不同的现象,特别在动态数据处理方面。

下面总结几种方法供大家参考

1、在静态类中定义公共变量

class GlobalCls    {        public static bool GlobalValue = false;    }    //在其他类中使用时    class Mothod1    {        private void Showdata()        {            Console .WriteLine (GlobalCls .GlobalValue );        }    }

这种使用方法最基本的,需要我们随时来读取数据,才能感知变量的变化;如果需要实时了解,可能还要采用定时读取的方法。

 

2、使用委托方法

    public delegate void MyDataChange();    class GlobalCls    {        private  static bool _GlobalValue = false;        public static MyDataChange DataChangeEvent;        public static bool GlobalValue        {            get            { return _GlobalValue; }            set            {                _GlobalValue = value;                if (DataChangeEvent != null)                {                    DataChangeEvent();                }            }        }    }    //在其他类中或窗体中使用时       class Mothod1    {        private bool newdata;        private void Showdata()        {            GlobalCls.DataChangeEvent +=(ShowValue);            // GlobalCls.DataChangeEvent += new MyDataChange(ShowValue);        }        private void ShowValue()        {            newdata = GlobalCls.GlobalValue;        }    }


这样在任何地方使用此变量 ,showvalue()都会响应的,即使不同窗体之间,这样可以更加快速来执行动作。

3、其实是第二种的简写吧

    class GlobalCls    {        private  static bool _GlobalValue = false;            public static event Action DataChangeEvent;         public static bool GlobalValue        {            get            { return _GlobalValue; }            set            {                _GlobalValue = value;                if (DataChangeEvent != null)                {                    DataChangeEvent();                }            }        }    }    //在其他类中或窗体使用时       class Mothod1    {        private bool newdata;        private void Showdata()        {            GlobalCls.DataChangeEvent += new Action(ShowValue);        }        private void ShowValue()        {            newdata = GlobalCls.GlobalValue;        }    }

第三种方法,就不需要定义全局的委托,可以节省一些空间,写法更简洁明了。

 

 

热点排行