gpt4 book ai didi

c# - 为什么在 switch 语句中 yield return 之后需要 break?

转载 作者:IT王子 更新时间:2023-10-29 04:26:29 24 4
gpt4 key购买 nike

有人能告诉我为什么编译器认为 break 在下面的代码中 yield return 之后是必要的吗?

foreach (DesignerNode node in nodeProvider.GetNodes(span, node => node.NodeType != NDjango.Interfaces.NodeType.ParsingContext))
{
switch (node.ErrorMessage.Severity)
{
case -1:
case 0:
continue;
case 1:
yield return new TagSpan<ErrorTag>(node.SnapshotSpan, new ErrorTag(PredefinedErrorTypeNames.Warning));
break;
default:
yield return new TagSpan<ErrorTag>(node.SnapshotSpan, new ErrorTag(PredefinedErrorTypeNames.SyntaxError));
break;
}
}

最佳答案

因为 yield return 只是迭代器生成器的语法糖,您实际上并没有退出任何方法。并且 C# 不允许在 switch 中失败语句(而且看起来你并不需要它)。

关于c# - 为什么在 switch 语句中 yield return 之后需要 break?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358568/

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