请使用.NET 3.0语法和编译2.0的建议

时间:2011-03-10 02:00:10

标签: .net c#-3.0 c#-2.0

使用3.0编译器构建但针对2.0框架的DLL是否肯定会在仅运行2.0的机器上运行?

详细说明: 到目前为止,我们一直在使用.NET 2.0编译器进行构建,以确保与2.0运行时兼容。现在我们想要包含一些包含3.0语法的第三方源代码,但我们仍然需要与2.0运行时兼容。因此,我们正在考虑为我们的生产版本更改为3.0编译器,但针对2.0框架。

虽然看起来这应该有用,但它有点吓人,所以我们真的很想听听那些试过这个的人。

4 个答案:

答案 0 :(得分:3)

在仍然以2.0运行时为目标时,您可以使用以下C#3功能:

  • 自动实施的属性
  • 对象/集合初始值设定项
  • 隐式输入的局部变量/数组
  • 匿名类型
  • Lambda表达式

您可以在2.0运行时使用以下C#3功能hack

  • 扩展方法

您不能使用以下内容:

  • LINQ扩展
  • 查询语法

答案 1 :(得分:0)

,它会起作用,因为编译器扩展只是语法糖。只需确保它使用正确的服务包。

答案 2 :(得分:0)

只要第三方库不引用不在目标运行时的库,你就可以了。 C#3.0与C#2.0一样编译为IL代码,所有语法添加仅限于C#语言。

答案 3 :(得分:0)

没关系。 .NET 3.5和C#3.0编译器的输出与.NET 2.0编译器二进制兼容。