在哪个.NET版本中添加了yield return语法

时间:2018-11-07 13:26:29

标签: c# .net

我很好奇添加了yield return x语法的C#版本以及支持它的.NET版本?

public IEnumerable<string> GetFoo(List<object> values)
{

    foreach(var item in values)
    {
        yield return item.ToString();
    }
}

2 个答案:

答案 0 :(得分:3)

您可以在What's New in C# page中找到此信息。

它说:

  

C#2 ,Visual Studio .NET 2005:

     

匿名方法,泛型,可为空的类型,迭代器/收益,静态类以及委托的协方差和对数方差。

收益回报是generates a custom IEnumerator implementation的一种编译器功能,因此不需要特定的.NET框架。它只需要通用名称和通用IEnuerator<T>就可以使用,因此 .NET 2.0及更高版本都可以使用。

答案 1 :(得分:1)

.NET 2.0和Visual Studio 2005附带的C#2.0中添加了自定义迭代器(yield returnyield break)。