C# yield关键字的用法

yield关键字的作用是将当前集合中的元素立即返回。


1.返回元素用yield return;(一次一个的返回)


2.结束返回用yield break;(终止迭代)


3.返回类型必须为 IEnumerable、IEnumerable<T>、IEnumerator 或 IEnumerator<T>。


4.参数前不能使用ref和out关键字


5.匿名方法中 不能使用yield


6.unsef中不能使用


7.不能将 yield return 语句置于 try-catch 块中。 可将 yield return 语句置于 try-finally 语句的 try 块中。yield break 语句可以位于 try 块或 catch 块,但不能位于 finally 块


看个例子

public void Ge()
        {
            foreach (int i in Feige.Fei(richTextBox1))
            {
                richTextBox1.Text += "返回的结果是:" + i + "\n";
            }
        }
        class Feige
        {
            public static IEnumerable<int>Fei(RichTextBox rtxt)
            {
                for (int i = 0; i < 10; i++)
                {
                    yield return i;
                    Thread.Sleep(1000);
                    rtxt.Text += "返回后的结果是:" + i + "\n";
                }
            }
        }

返回后的结果是:1
返回的结果是:2
返回后的结果是:2
返回的结果是:3
返回后的结果是:3
返回的结果是:4
返回后的结果是:4
返回的结果是:5
返回后的结果是:5
返回的结果是:6
返回后的结果是:6
返回的结果是:7
返回后的结果是:7
返回的结果是:8
返回后的结果是:8
返回的结果是:9
返回后的结果是:9


这样就是每执行一次for循环就执行一次foreach循环。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值