项目中用到的比较好的,简单单例写法总结下:
namespace DesignMode { public class SingleExample { //第一种:创建静态变量,下次调用直接取。 public void RunOne() { SingleOne.Init(); //其他的地方调用 SingleOne.Instance.list.Add(1); SingleOne.Instance.list.Add(2); SingleOne.Instance.list.ForEach(x=> { Console.WriteLine(x); }); } //第二种:构造函数私有化 public void RunTwo() { SingleOne.Instance.list.Add(1); SingleOne.Instance.list.Add(2); SingleOne.Instance.list.ForEach(x=> { Console.WriteLine(x); }); } } public class SingleOne { public static SingleOne Instance { get; set; } public List<int> list = new List<int>(); public static void Init() { Instance = new SingleOne(); } } public class SingleTwo { private static object lockSingle = new object(); private static SingleTwo _instance; private SingleTwo() { } public static SingleTwo Instance { get { if (_instance==null) { lock (lockSingle) { if (_instance==null) { _instance = new SingleTwo(); } } } return _instance; } } } }