【发布时间】:2009-09-16 09:01:09
【问题描述】:
public class MySingletonClass
{
public MySingletonClass()
{
_mySingletonObj = Instance();
}
public static MySingletonClass Instance()
{
if (_mySingletonObj == null)
{
lock (typeof(lockObject))
{
if (_mySingletonObj == null)
_mySingletonObj = new MySingletonClass();
}
}
return _mySingletonObj ;
}
}
MySingletonClass _myObj = new MySingletonClass();
这充当带有公共构造函数的单例..?
谢谢
【问题讨论】:
-
你为什么要那样做?
-
我认为这段代码会导致死锁和递归构造函数调用 -> 堆栈溢出。
-
这段代码充满了问题,实际上并不能作为单例运行,因为正如 Oliver 所指出的,公共构造函数也会导致堆栈溢出。