using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CCSprite
{
//
//http://www.webshu.net/jiaocheng/programme/ASPNET/200606/2270.html
//
//泛型类型约束new(): 强制任何类型'T'都必须具有无参数的公共构造函数。这里允许SingletonCreator类来实例化类型'T'。
//
public class SingletonProvider<T> where T : new()
{
SingletonProvider() { }
public static T Instance
{
get { return SingletonCreator.instance; }
}
class SingletonCreator
{
static SingletonCreator() { }
internal static readonly T instance = new T();
}
}
/*
public class TestClass
{
private string _createdTimestamp;
public TestClass()
{
_createdTimestamp = DateTime.Now.ToString();
}
public void Write()
{
System.Diagnostics.Debug.WriteLine(_createdTimestamp);
}
}
这个类就像下面这样使用单例提供者:
SingletonProvider<TestClass>.Instance.Write();
*/
}