一尘不染

收益表的实施

c#

我想以一种易于理解的形式了解有关该声明的 所有 信息yield

我已经了解了该yield语句及其在实现迭代器模式时的简便性。但是,大多数都非常干燥。我想深入了解一下微软如何处理收益率。

另外,什么时候使用产量折让?


阅读 261

收藏
2020-05-19

共1个答案

一尘不染

yield通过内部构建状态机来工作。当例程退出并下次从该状态恢复时,它将存储该例程的当前状态。

您可以使用Reflector查看编译器如何实现它。

yield break当您要停止返回结果时使用。如果没有a yield break,则编译器会在函数末尾假设一个(就像return;普通函数中的一条语句一样)

2020-05-19