我正在了解单例模式。我在这里写了一小段代码

Program.cs:

class Program
{
    static void Main(string[] args)
    {
        SingleObject objtemp = SingleObject.getInstance();\
        objtemp.showMessage();
    }
}


SingleObject.cs

class SingleObject
{
    static SingleObject obj = new SingleObject();

    private SingleObject()
    {
    }

    public static SingleObject getInstance()
    {
        return obj;
    }

    public void showMessage()
    {
        Console.WriteLine("Hello Message");
    }
}


我不明白什么实际上是在调用SingleObject()构造函数?
当我调用getInstance()方法时,它是否正确返回实例?

最佳答案

基本思想是您正在将构造函数私有化。因此,您不能从外部初始化SingleObject的对象。但是,您在类本身内创建的静态对象可以使用私有构造函数,从而使您可以使用公共方法从外部访问它。

09-27 00:49