为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候应该使用Lazy <T>?

什么时候应该使用Lazy <T>?

眼眸繁星 2019-11-05 11:20:01
我发现了这篇文章Lazy:C#4.0中的惰性-惰性使用惰性对象具有最佳性能的最佳实践是什么?有人可以指出我在实际应用中的实际用途吗?换句话说,什么时候应该使用它?
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

通常,当您想在第一次实际使用某个实例时实例化它。这将创建它的成本延迟到需要时/而不是始终产生成本。


通常,当可以使用或不使用该对象并且构造它的成本很重要时,这是优选的。


查看完整回答
反对 回复 2019-11-05
?
函数式编程

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;

}


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 766 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信