首页 > C# > “yield break;”在 C# 中有什么作用?

“yield break;”在 C# 中有什么作用?

上一篇 下一篇

我在 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#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 494次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-23
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 响应式 微信公众平台 单页式简历模板 企业网站 微信图片 自适应 微信文章 微信素材 微信模板
您可能会喜欢的其他模板