private static T instance = null;
public static T Instance
{
get
{
if (instance == null)
instance = new T();
return instance;
}
}
如上面代码,如果某个类中有这样一个静态的T的变量 private static T instance = null; ,请问是否传入N个不同类型的T,就会N个不同的静态实例?比如,先传入一个string类型,就会有一个静态的 string instance
在传入一个int类型,就会有一个静态的 int instance
解决方案 »
- c# 中的arrlist queue HashtableTest SortedList stack 的用法
- 新手求助 关于ADO.NET 与数据库command 关于 带参数的insert语句 为什么不行 求教
- ListView控件的使用方法问题
- DropDownList的SelectedIndexChanged事件触发不了
- 数据库查询显示
- WCF中客户端恢复继承层级关系,高手帮忙解决一下
- 新手!求助各位大侠,RDLC报表序号!
- 还是昨天创建项目时的问题。增加高分。急需朋友们帮忙解决。
- Asp.net(c#) 怎么计算两个日期
- .net发邮件问题(急急急急)
- 关于抽象工厂的理解
- 怎么判断WCF地址是否可用?
写了个小测试,应该是N个实例测试层数如下:class Program
{
static void Main(string[] args)
{
DAO1 D1 = DAO1.Instance;
DAO2 D2 = DAO2.Instance; DAO1 D4 = DAO1.Instance;
DAO2 D5 = DAO2.Instance;
Console.ReadKey();
}
}
public class DAO1 : BaseDAO<DAO1>
{
} public class DAO2 : BaseDAO<DAO2>
{ }
public class BaseDAO<T> where T : BaseDAO<T>, new()
{
private static T instance = null; public static T Instance
{
get
{
if (instance == null)
{
Console.WriteLine(typeof(T) + "类型instance为null,为其初始化。");
instance = new T();
}
else
{
Console.WriteLine(typeof(T) + "类型instance不为null,直接返回。");
}
return instance;
}
}
}
输出:
StaticTTest.DAO1类型instance为null,为其初始化。
StaticTTest.DAO2类型instance为null,为其初始化。
StaticTTest.DAO1类型instance不为null,直接返回。
StaticTTest.DAO2类型instance不为null,直接返回。
string,int能传么。又不是对象