場景
在開發中,經常會有一些全局作用域的常量、字段、屬性、方法等。
需要將這些設置為全局作用域保存且其實例唯一。
注:
博客主頁:
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();