C#中单例模板

泛型单例

/**
 * 泛型单例模板
where 限制这个单例类必须要能被new出来
 */
public class Singleton<T> : IDisposable where T : new()
{
    private static T instance;

    public static T Instance
    {
        get {
            if (instance == null) instance = new T();
            return instance;
        }
    }

    public virtual void Dispose()
    {
        
    }
}

使用如下

public class RoleMgr:Singleton<RoleMgr>
{
    private Dictionary<string,GameObject> m_Role = new Dictionary<string, GameObject> ();

    public GameObject LoadPlayer(string name)
    {
       ````````````````
    }

    public override void Dispose()
    {
        base.Dispose();

        m_Role.Clear ();

    }
}

// 其他类中只需要使用如下代码即可调用
RoleMgr.Instance.LoadPlayer("player");

 

posted @   伟衙内  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示