C# yield 关键字 电脑版发表于:2022/2/18 16:43 tn4#话不多说,先看看代码 ```csharp public static IEnumerable<int> enumerableFuc() { yield return 1; yield return 2; yield return 3; } foreach (var item in enumerableFuc()) { Console.WriteLine(item); } ``` ####输出结果 ------------ ![](https://img.tnblog.net/arcimg/mybolg/c31ba3834e4744968d4aae4aaf5c5964.png) #####通过yield return实现了类似用foreach遍历数组的功能,说明yield return也是用来实现迭代器的功能 现在我们把enumerableFuc方法换一下 ```csharp public static IEnumerable<int> enumerableFuc() { yield return 1; yield return 2; yield break; yield return 3; } foreach (var item in enumerableFuc()) { Console.WriteLine(item); } ``` 现在在输出结果 ![](https://img.tnblog.net/arcimg/mybolg/dd3f560dcf0743498303ed9a84aa9b34.png) 能看到只输出了1,2 说明这个迭代器被yield break停掉了,所以yield break是用来终止迭代的。 tn4#注意 只能使用在返回类型必须为 IEnumerable、IEnumerable<T>、IEnumerator 或 IEnumerator<T>的方法、运算符、get访问器中。