C# yield关键字的用法

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


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


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


3.返回类型必须为 IEnumerable、IEnumerable、IEnumerator 或 IEnumerator


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 IEnumerableFei(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循环。

你可能感兴趣的:(C#)