我如何使用这个单例示例

时间:2013-11-14 17:07:41

标签: c#

这个页面很好地描述了如何创建c#单例,但它似乎没有解释你如何实际使用它们。

http://msdn.microsoft.com/en-us/library/ff650316.aspx

因此,如果我要在下面创建这个单例,我该如何开始(我不认为我可以直接实例化它),如果我没有实例对象,如何访问它 - 例如如何读取和写入属性prop1

public sealed class Singleton
{
   private static readonly Singleton instance = new Singleton();

   private Singleton(){}

   public static Singleton Instance
   {
      get 
      {
         return instance; 
      }
   }

   public int prop1 {get; set;}
}

4 个答案:

答案 0 :(得分:3)

要使用单例类,只需调用它的公共静态实例属性即可。例如,假设您有一个记录器,并且您不希望其他开发人员始终实例化它:

public class Logger
{
    private static Logger logger = new Logger();

    private Logger() { }

    public static Logger Instance
    {
        get
        {
            return logger;
        }
    }

    public void Log(text)
    {
        // Logging text
    }

    public int Mode { get; set; }
}

你应该这样记录:

Logger.Instance.Log("some text here");

在您的情况下,要读/写Mode属性,您应该写:

Logger.Instance.Mode = 1;
int mode = Logger.Instance.Mode;

答案 1 :(得分:0)

您可以使用

访问该实例
Singleton.Instance

答案 2 :(得分:0)

Singleton.Instance.prop1 = 12;

答案 3 :(得分:0)

你只创建一次实例,所以你会有这样的东西

public sealed class Singleton
{
   private static readonly Singleton instance;
   private bool initialised = false; 

   private Singleton(){}

   public static Singleton Instance
   {
      get 
      {
        if(initialised)
          return instance; 
        else {
               initialsed = true;
               instance = new Singleton();
               return instance; 
             }
      }
   }

   public int prop1 {get; set;}
}