当前位置: 首页 > 编程语言 > C#

如果yieldreturn永远不会发生,则返回null?分享

时间:2023-04-11 03:00:02 C#

如果yieldreturn从未发生过,则返回null?该方法通过yieldreturn语句返回IEnumerable。如果yield语句从未发生(它在条件逻辑中),该方法是否返回null或计数为0的Enumerable?一个有效的IEnumerable,在您对其进行迭代时不产生任何值。想一想:您可以将IEnumerable生成器存储在一个变量中——当您实际迭代结果时,代码本身将被执行。如果你有null,你怎么能执行代码?或者你怎么知道这个函数不运行它就不会产生任何东西。后者——无论如何您都可以使用GetEnumerator(),不会有任何枚举项。这等效于Enumerable.Empty。事实上,倾向于大量使用枚举的编码人员在他们的工具包中会有一个标准部分:publicstaticIEnumerableEmptyEnum(){yieldbreak;在System.Linq.Enumerable.Empty()出现之前。在许多情况下很有用,通常正是因为它不返回null。例如,如果GetIntEnum()可以返回一些IEnumerable类型但也返回null,那么GetIntEnum()??Enumerable.Empty()GetIntEnum()??引用一些东西(假设这是在空结果的情况下所需的行为)。以上是C#学习教程:Ifyieldreturnneveroccurs,returnnull?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: