我正在尝试初始化这样的类:
DllInjector mInject = new DllInjector();
但是DllInjector()给了我错误:"由于其保护级别而无法访问" 所以我查看了课程,发现它有一个单身人士:
public static DllInjector GetInstance
{
get
{
if (_instance == null)
{
_instance = new DllInjector();
}
return _instance;
}
}
那么如何实例化该类并使用它呢?
答案 0 :(得分:1)
Singleton模式意味着您只有一个类的实例。
所以你不能只使用构造函数实例化另一个:
var mInject = new DllInjector();
构造函数不是公共的,这就是为什么你得到“由于其保护级别而无法访问”错误。相反,您应该使用提供的现有实例的访问器:
var mInject = DllInjector.GetInstance;
如果您是第一次调用它,它将自动实例化。
答案 1 :(得分:0)
Singleton是设计模式。
这是什么意思: -
这意味着你只能创建一个类的一个实例,并且该类的构造函数是私有的,因此无法从外部实例化,实际上该单例的实例仅在该类中创建并使用某些属性返回或方法
有关详细信息,请查看: -
对于深度潜水,你可以选择只有Jon Skeet