正如其他人所說,C#3.0特徵可以靶向與C#3.0的編譯器的.NET 2.0運行時使用。
與此相關的一個鮮爲人知的事實是,你甚至可以中使用LINQ和.NET 2.0,如果提供自己的LINQ實現。
下面是使「選擇」的例子,「在那裏」運營商:
namespace System.Runtime.CompilerServices
{
// defining this attribute allows using extension methods with .NET 2.0
[AttributeUsage(AttributeTargets.Method)]
public sealed class ExtensionAttribute : Attribute {}
}
namespace System
{
public delegate R Func<A, R>(A arg0);
}
namespace System.Linq
{
public static class Enumerable
{
public static IEnumerable<R> Select<T, R>(this IEnumerable<T> input, Func<T, R> f)
{
foreach (T element in input)
yield return f(element);
}
public static IEnumerable<T> Where<T>(this IEnumerable<T> input, Func<T, bool> f)
{
foreach (T element in input) {
if (f(element))
yield return element;
}
}
}
你可以出貨單聲道的版本System.Core程序與應用程序中,如果你想在.NET充分利用LINQ的2.0。
'var'不是.Net功能 - 它是C#功能。 – 2010-01-22 16:30:10