何时应该使用 Lazy

26 浏览
0 Comments

何时应该使用 Lazy

我发现了一篇有关Lazy的文章:C# 4.0中的惰性——Lazy

使用Lazy对象获得最佳性能的最佳实践是什么?

有人能指点我在实际应用中的实际用途吗?换句话说,我什么时候应该使用它?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你应该尽可能避免使用单例模式,但如果你确实需要使用它, Lazy 可以轻松实现延迟加载、线程安全的单例模式:

public sealed class Singleton
{
    // Because Singleton's constructor is private, we must explicitly
    // give the Lazy a delegate for creating the Singleton.
    static readonly Lazy instanceHolder =
        new Lazy(() => new Singleton());
    Singleton()
    {
        // Explicit private constructor to prevent default public constructor.
        ...
    }
    public static Singleton Instance => instanceHolder.Value;
}

0
0 Comments

通常当您想要在首次使用时实例化某个对象时,可以使用延迟加载。这样可以将创建对象的成本延迟到需要时再进行,而不是总是产生成本。

通常情况下,这在对象可能被使用或不被使用且构造成本不可忽略时,是更可取的方法。

0