【问题标题】:Use (certain) lambda expressions when targeting .NET 2.0?面向 .NET 2.0 时使用(某些)lambda 表达式?
【发布时间】:2010-07-27 08:29:41
【问题描述】:

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。这还是我们应该做的事情吗?

【问题讨论】:

    标签: c# .net lambda


    【解决方案1】:

    你应该选择你最喜欢的。在 C# 3.0 中引入的所有特性(例如 Lambda 表达式、扩展方法和 LINQ)都构建在 2.0 .NET 运行时之上。所以你可以使用 C#3.0 进行开发,并在运行时的 2.0 上运行。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你的意思是 .NET 3.5 C# 编译器是必要的吗? (只能构建针对 .net 2.0 的代码)
      • @JimmyHofa:是的,我就是这个意思。
      • 从技术上讲,C# 3.0 编译器是必不可少的部分。没有“.NET 3.5 C# 编译器”之类的东西(但大多数人可能会猜到你的意思)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多