C# yield关键字的用法

来源:互联网 发布:网络监控机 编辑:程序博客网 时间:2024/04/30 13:13

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 0