三种单例模式demo

 1

using System;

public class Singleton
{
   private static Singleton instance;

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null)
         {
            instance = new Singleton();
         }
         return instance;
      }
   }
}

2


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

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

3

using System;

public sealed class Singleton
{
   private static volatile Singleton instance;
   private static object syncRoot = new Object();

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null
         {
            lock (syncRoot) 
            {
               if (instance == null
                  instance = new Singleton();
            }
         }

         return instance;
      }
   }
}
posted @ 2011-12-19 23:35  itor  阅读(186)  评论(0编辑  收藏  举报