我发现了这篇文章Lazy:C#4.0中的惰性-惰性使用惰性对象具有最佳性能的最佳实践是什么?有人可以指出我在实际应用中的实际用途吗?换句话说,什么时候应该使用它?
3 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
通常,当您想在第一次实际使用某个实例时实例化它。这将创建它的成本延迟到需要时/而不是始终产生成本。
通常,当可以使用或不使用该对象并且构造它的成本很重要时,这是优选的。
函数式编程
TA贡献1807条经验 获得超9个赞
您应该尝试避免使用Singleton,但是如果需要,Lazy<T>可以轻松实现懒惰的,线程安全的Singleton:
public sealed class Singleton
{
// Because Singleton's constructor is private, we must explicitly
// give the Lazy<Singleton> a delegate for creating the Singleton.
static readonly Lazy<Singleton> instanceHolder =
new Lazy<Singleton>(() => new Singleton());
Singleton()
{
// Explicit private constructor to prevent default public constructor.
...
}
public static Singleton Instance => instanceHolder.Value;
}
- 3 回答
- 0 关注
- 766 浏览
添加回答
举报
0/150
提交
取消