Singleon类:
    //应对于单线程
    public class SingletonA
    
{
        
private static SingletonA instance;

        
//一个私有的构造器,禁用构造器
        private SingletonA() {}

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

                
return instance;
            }

        }

    }


    
//应对于多线程
    public class SingletonB
    
{
        
//volatile关键字用于禁止编译器对指定的顺序进行微调。
        private static volatile SingletonB instance = null;

        
private static object lockHelper = new object();

        
//一个私有的构造器,禁用构造器
        private SingletonB() {}

        
public static SingletonB Instance
        
{
            
get
            
{
                
//双锁,用于保证只一个线程使用这里,防止多线程产生多个实例。
                if (instance == null)
                
{
                    
lock (lockHelper)
                    
{
                        
if (instance == null)
                            instance 
= new SingletonB();
                    }

                    
                }

                
return instance;
            }

        }

    }

主程序:
        public static void Main()
        
{
            SingletonA t1 
= SingletonA.Instance;

            SingletonA t2 
= SingletonA.Instance;

            Console.WriteLine(
object.ReferenceEquals(t1, t2) == true);
        }