gpt4 book ai didi

c# - C# 中延迟执行和懒惰求值的区别

转载 作者:可可西里 更新时间:2023-11-01 08:17:54 26 4
gpt4 key购买 nike

能否请您告诉我 C# 中延迟执行和惰性求值之间的确切差异是什么?这两个是同义词。有人可以举例说明区别吗?

最佳答案

实际上,它们的意思本质上是一样的。但是,最好使用术语延迟

  • 懒惰是指“除非万不得已才去做。”

  • 延迟 意味着“在调用者实际使用它之前不计算结果。”

在实践中,当调用者决定使用评估结果时(即开始遍历 IEnumerable<T> ),这正是需要完成“工作”的时间点(例如向数据库)。

术语延迟 更具体/描述了实际发生的事情。当我说我懒惰时,意思是我避免做不必要的工作真正 的含义是模棱两可的。然而,当我说执行/评估是延迟时,这实质上意味着我根本没有给你真正的结果,而是一个你可以用来领取结果的票。我推迟实际出去并得到那个结果,直到你声明它。

在讨论与 C# 相关的主题时,请使用术语延迟Lazy 是一个更模糊的版本。

注意在< em>序列。 延迟加载预先加载 是用于描述序列元素加载方式的术语。当一个序列被惰性加载时,这意味着无论什么生成序列都只做足够的工作来一次加载一个元素。当一个序列被急切加载时,整个序列被一次性加载并存储在本地缓冲区中。不同的使用需求需要不同的加载模式。

关于c# - C# 中延迟执行和懒惰求值的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530755/

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