using System; namespace DesignPatters.Singleton { public class Singleton { public static Singleton Instance() { if (_instance == null) { lock (typeof(Singleton)) { if (_instance == null) { _instance = new Singleton(); } } } return _instance; } public int NextValue() { return ++count; } protected Singleton(){} private static volatile Singleton _instance = null; private int count = 0; } public class MainClient { [STAThread] static void Main() { Singleton sg1 = Singleton.Instance(); for (int i = 0; i < 20; i++) Console.WriteLine("Next Value: {0}", sg1.NextValue() + " - sg1"); Singleton sg2 = Singleton.Instance(); Console.WriteLine("Next Value: {0}", sg2.NextValue() + " - sg2"); } } }
本文地址:http://com.8s8s.com/it/it42658.htm