在针对.NET 2.0时使用(某些)lambda表达式?

时间:2010-07-27 08:29:41

标签: c# .net lambda

ReSharper建议我们改变:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
    delegate(object sender, X509Certificate certificate, X509Chain chain,
        SslPolicyErrors sslPolicyErrors)
{
    return true;
};

分为:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
    (sender, certificate, chain, sslPolicyErrors) => true;

它看起来更清洁。但我们的目标是.NET 2.0。这仍然是我们应该做的事情吗?

2 个答案:

答案 0 :(得分:11)

您应该选择最喜欢哪一种。在C#3.0中,所有引入的功能(例如Lambda表达式,扩展方法和LINQ)都是在2.0 .NET运行时上构建的。因此,您可以使用C#3.0进行开发,并在运行时的2.0上运行它。

只要您的编译器可以处理C#3.0,您就可以使用所有新的C#3.0功能。我所知道的唯一例外是,如果您使用表达式树,则需要使用.NET 2.0 SP1,因为需要CLR中针对该Service Pack的一些错误修复才能使表达式树正常工作。

答案 1 :(得分:8)

只要您使用VS2008(或更高版本)进行开发,就可以使用它。 Lambda表达式是C#语言的一个特性,它的不是是.Net Framework的一个特性。