gpt4 book ai didi

c# - Lazy 为什么会得到 Func

转载 作者:行者123 更新时间:2023-11-30 19:01:04 25 4
gpt4 key购买 nike

谁能简单解释一下,为什么C#中的Lazy需要获取Func?

public Lazy (Func<T> valueFactory);

我知道有时候你需要一个函数来做一些花哨的init()
然而,很多时候我发现自己在写一个单例,或者一些简单的东西,只需要创建一个类的新实例。正如乔恩的双向飞碟书中所示。 http://csharpindepth.com/Articles/General/Singleton.aspx

我觉得这种语法很烦人。

谢谢!

private static readonly Lazy<Singleton> lazy =
new Lazy<Singleton>(() => new Singleton());

最佳答案

需要一个函数,因为如果您可以这样做:

var Lazy<Foo> = new Lazy<Foo>(new Foo());

您已经实例化了 Foo ,你不需要,否则你不必使用 Lazy<T>开始。

Func<T>持有 Foo 的初始化程序, 但仅在您访问 Lazy<T> 时才初始化它的 Value .

关于c# - Lazy<T> 为什么会得到 Func<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com