练习题:用泛型实现一个单例模式。
namespace 泛型约束
{
//练习题:
//用泛型实现一个单例模式
//单例模式是指确保一个类只有一个实例,并提供一个全局访问点。
public class Singleton<T> where T: Singleton<T>, new()
{
//static允许类名.访问
private static T _instance = null;
/// <summary>
/// 通过属性得到Singleton类型的实例
/// </summary>
public static T GetSingleton
{
//有get无set,为属性只读
get
{
if (_instance == null) { _instance = new T(); }
return _instance;
}
}
}
public class Singleton1<T> where T : Singleton1<T>, new()
{
//static允许类名.访问
private static T _instance = null;
/// <summary>
/// 通过方法得到Singleton类型的实例
/// </summary>
public static T GetSingleton1()
{
if (_instance == null) { _instance = new T(); }
return _instance;
}
}
internal class Program
{
static void Main(string[] args)
{
}
}
}