![]() |
1
16
这被称为延迟执行,
这有很多优点,其中之一是可以创建看似无限的枚举:
现在想象一下:
你会有一个
另一方面,由于其懒惰,您可以执行以下操作:
后来,
迭代器块仅在需要时运行;当枚举被迭代时,不是在之前,也不是在之后。 |
![]() |
2
5
推迟执行延迟执行意味着表达式的计算被延迟,直到实际需要其实现值。当您必须操作大型数据集合时,延迟执行可以极大地提高性能,尤其是在包含一系列链式查询或操作的程序中。在最好的情况下,延迟执行只允许通过源集合进行单个迭代。
当在迭代器块中使用时,C语言中的yield关键字(以yield return语句的形式)直接支持延迟执行。这样的迭代器必须返回类型为的集合
当您编写一个实现延迟执行的方法时,您还必须决定是使用延迟求值还是使用即时求值来实现该方法。 延迟评估通常会产生更好的性能,因为它在整个集合评估过程中均匀分布开销处理,并最大限度地减少临时数据的使用。当然,对于某些操作,除了实现中间结果之外,别无选择。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
|
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 6 月前 |
![]() |
CactusCake · if语句中应有分号 7 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 7 月前 |