在C#中为'this'创建一个实例变量

use*_*400 2 c# singleton

我正在浏览一些代码,而且我遇到的东西对我来说似乎很奇怪.这是一个简短的例子,说明正在做什么.

namespace some.namespace
{
    public abstract class ClassName
    {

        private static ClassName _instance = null;

        private static ClassName Instance
        {
            get
            {
                return _instance;
            }
            set
            {
                _instance = value;
            }
        }

        public ClassName ()
        {
            if(Instance != null)
            {
            return;
            }
            Instance = this;
        }
    }
}        
Run Code Online (Sandbox Code Playgroud)

这是否有充分理由让我失踪?在整个代码中,都有引用ClassName.Instance....

Fáb*_*ira 6

这是一种名为Singleton的模式.

在软件工程中,单例模式是一种设计模式,它将类的实例化限制为一个对象.当需要一个对象来协调整个系统的操作时,这非常有用.

来自维基百科.