.jpg)
我在 MSDN 中看到过这种语法:,但我不知道它的作用。有人知道吗?yield break

它指定迭代器已结束。您可以将其视为不返回值的语句。yield breakreturn
例如,如果将函数定义为迭代器,则函数的主体可能如下所示:
for (int i = 0; i < 5; i++)
{
yield return i;
}
Console.Out.WriteLine("You will see me");
请注意,循环完成其所有循环后,将执行最后一行,你将在控制台应用中看到该消息。
或者像这样:yield break
int i = 0;
while (true)
{
if (i < 5)
{
yield return i;
}
else
{
// note that i++ will not be executed after this
yield break;
}
i++;
}
Console.Out.WriteLine("Won't see me");
在这种情况下,最后一个语句永远不会执行,因为我们提前离开了函数。

结束迭代器块(例如,表示 IEnumerable 中没有更多元素)。

告诉迭代器它已到达终点。
举个例子:
public interface INode
{
IEnumerable<Node> GetChildren();
}
public class NodeWithTenChildren : INode
{
private Node[] m_children = new Node[10];
public IEnumerable<Node> GetChildren()
{
for( int n = 0; n < 10; ++n )
{
yield return m_children[ n ];
}
}
}
public class NodeWithNoChildren : INode
{
public IEnumerable<Node> GetChildren()
{
yield break;
}
}
模板简介:该模板名称为【“yield break;”在 C# 中有什么作用?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。