场景
在开发中,经常会有一些全局作用域的常量、字段、属性、方法等。
需要将这些设置为全局作用域保存且其实例唯一。
注:
博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先新建一个全局的class,名字随意,这里叫Global。
public class Global { }
为了保证其单例实现,在类中设置如下
private static string _lockFlag = "GlobalLock"; private static Global _instance; private Global() { } public static Global Instance { get { lock (_lockFlag) { if (_instance == null) { _instance = new Global(); } return _instance; } } }
全局常量实现
public const int INDENT = 5; public const string FONT_FAMILY = "宋体";
全局字段实现
private string _currCompareDataFile; private List<DataTreeNode> _compareData = new List<DataTreeNode>();
全局属性实现
public string CurrCompareDataFile { get { return _currCompareDataFile; } set { _currCompareDataFile = value; } }
public List<DataTreeNode> CompareData { get { return _compareData; } set { _compareData = value; } }
注:
全局字段与属性对应配合使用,上面进行声明,下面进行get和set的设置。
如果在取值或者赋值时有特殊的设置,还可以
public string CurrChartTitle { get { if (String.IsNullOrEmpty(this._currDataFile)) { return "默认标题"; } else { return System.IO.Path.GetFileNameWithoutExtension(String.Format("{0}{1}", this._currDataFile, Global.MAIN_EXT)); } } }
全局方法实现
public void Init() { }
使用举例
常量使用
Global.常量名
Global.XAXIS_ATTRIBUTE_XPATH
字段使用
字段一般是在Global里配合属性使用
public string CurrCompareDataFile { get { return _currCompareDataFile; } set { _currCompareDataFile = value; } }
属性使用
Global.Instance.CurrCompareDataFile
方法的使用
Global.Instance.Init();