在单例模式中,我们有一个私有构造函数和一个公共静态方法,如下所示 -
public class MyClass
{
private static MyClass _uniqueInstance;
private MyClass()
{
}
public static MyClass GetInstance()
{
if(_uniqueInstance==null)
{
_uniqueInstance = new MyClass();
}
return _uniqueInstance;
}
}
当我们需要该类的对象时,可以通过调用静态方法来创建此类的唯一实例 -
var myObject = MyClass.GetInstance();
但是我很困惑为什么我们在GetInstance()方法中检查null,因为"_uniqueInstance"已经是一个静态变量,所以它只会被初始化和分配内存一次。即使我们不检查null并使用"new"初始化对象,由于它是一个静态变量,内存也不会再次分配给这个对象。那么,这个null检查有什么用呢?请帮我解惑。