using System;
public class SingletonBase<T> where T: class, new()
{
private static T _instance;
private static object _syncObj;
static SingletonBase()
{
SingletonBase<T>._syncObj = new object();
}
public static T Instance
{
get
{
if (SingletonBase<T>._instance == null)
{
lock (SingletonBase<T>._syncObj)
{
if (SingletonBase<T>._instance == null)
{
SingletonBase<T>._instance = Activator.CreateInstance<T>();
}
}
}
return SingletonBase<T>._instance;
}
}
}
使用办法:继承此类,然后用类名.Instance.方法名访问即可