单身模式 - 对象的创建

时间:2016-05-14 17:57:08

标签: c# object singleton

我正在理解单身人士模式。我在这里写了一小段代码

的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()方法时,它是否正确返回实例?

2 个答案:

答案 0 :(得分:0)

基本思想是你将构造函数设为私有。因此,您无法从外部初始化SingleObject的对象。但是您在类本身中创建的静态对象可以使用私有构造函数,允许您使用公共方法从外部访问它。

答案 1 :(得分:0)

static SingleObject obj = new SingleObject();

您正在进行此实例化。它将在首次使用前调用。在这里阅读更多When do static variables get initialized in C#?

相关问题