C# 两行代码实现 延迟加载的单例模式(线程安全)
Posted HK Zhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 两行代码实现 延迟加载的单例模式(线程安全)相关的知识,希望对你有一定的参考价值。
关键代码第4,5行。
很简单的原理不解释:readonly + Lazy(.Net 4.0 + 的新特性)
1 public class LazySingleton 2 { 3 //Lazy singleton 4 private LazySingleton() { } 5 public static readonly Lazy<LazySingleton> instance = new Lazy<LazySingleton>(() => { return new LazySingleton(); }); 6 7 //not lazy Singleton 8 //public static readonly LazySingleton instance = new LazySingleton(); 9 10 public String Name { get; set; } 11 } 12 13 public class LazySingletonDemo 14 { 15 public static void Execute() 16 { 17 18 if (!LazySingleton.instance.IsValueCreated) 19 Console.WriteLine("LazySingleton is not initialized"); 20 21 LazySingleton.instance.Value.Name = "HK"; 22 23 Console.WriteLine(LazySingleton.instance.Value.Name); 24 } 25 }
测试结果:
以上是关于C# 两行代码实现 延迟加载的单例模式(线程安全)的主要内容,如果未能解决你的问题,请参考以下文章