从.NET 4开始,可以使用
个人认为,
在选择最佳方法时有哪些需要注意的考虑因素?
Lazy<T>
来惰性地初始化对象。直觉上,也可以在公共属性的getter中执行延迟初始化,以向调用者提供相同的功能。我想知道Lazy<T>
是否比后者具有任何固有优势,因此应该首选它?个人认为,
Lazy<>
可以快速降低代码可读性,但也许只是看到了被滥用的情况。从好的方面来说,它确保线程安全,但有许多.NET同步构造 - 或许我错了 - 可以很容易地在getter内部实现相同的功能。在选择最佳方法时有哪些需要注意的考虑因素?
Lazy<T>
实现的延迟初始化的示例。这并不像你想象中那么容易。 - Ben Voigt