using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpUtil { /// /// 普通单例 /// /// public class Singleton where T : Singleton, new() { /// /// 单例 /// private static T m_Instance; /// /// 实例 /// public static T Instance { get { if (object.ReferenceEquals(Singleton.m_Instance, null)) { var obj = new T(); Singleton.m_Instance = obj; Container.Add(typeof(T).Name, obj); } return Singleton.m_Instance; } } #region ' 内部容器 ' static Dictionary _mC; static Dictionary Container { get { if (null == _mC) { _mC = new Dictionary(); } return _mC; } } #endregion } }