我很好奇添加了yield return x
语法的C#版本以及支持它的.NET版本?
public IEnumerable<string> GetFoo(List<object> values)
{
foreach(var item in values)
{
yield return item.ToString();
}
}
答案 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 return
,yield break
)。