C#无法初始化类

时间:2017-07-10 03:22:14

标签: c#

我正在尝试初始化这样的类:

DllInjector mInject = new DllInjector();

但是DllInjector()给了我错误:"由于其保护级别而无法访问" 所以我查看了课程,发现它有一个单身人士:

public static DllInjector GetInstance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new DllInjector();
            }
            return _instance;
        }
    }

那么如何实例化该类并使用它呢?

2 个答案:

答案 0 :(得分:1)

Singleton模式意味着您只有一个类的实例。

所以你不能只使用构造函数实例化另一个:

var mInject = new DllInjector();

构造函数不是公共的,这就是为什么你得到“由于其保护级别而无法访问”错误。相反,您应该使用提供的现有实例的访问器:

var mInject = DllInjector.GetInstance;

如果您是第一次调用它,它将自动实例化。

答案 1 :(得分:0)

Singleton是设计模式。

这是什么意思: -

这意味着你只能创建一个类的一个实例,并且该类的构造函数是私有的,因此无法从外部实例化,实际上该单例的实例仅在该类中创建并使用某些属性返回或方法

有关详细信息,请查看: -

Implementing Singleton in C#

对于深度潜水,你可以选择只有Jon Skeet

Implementing the Singleton Pattern in C#