gpt4 book ai didi

c# - Enumerable 中的重复 yield 中断

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:35 25 4
gpt4 key购买 nike

我正在通过 dnSpy 反编译 System.Core.dll (4.7.3429.0) 来学习 linq,并看到重复的“yield break;”在一些情况下,比如这个

private static IEnumerable<TResult> CastIterator<TResult>(IEnumerable source)
{
foreach (object obj in source)
{
yield return (TResult)((object)obj);
}
IEnumerator enumerator = null;
yield break;
yield break;
}

第二个永远不会被调用吗?

它的目的是什么?它是 dnSpy 中的包还是 .NET 中的误用?

最佳答案

是的, bug 。两者 reference source而 Telerik 的 JustDecompile 只是显示

foreach (object obj in source) yield return (TResult)obj;

(JustDecompile 添加大括号)。

两个 yield break 语句都是多余的。而 IEnumerator enumerator = null; 也是一个多余的语句。

关于c# - Enumerable 中的重复 yield 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56997018/

25 4 0