请提供有关使用.NET 3.0语法和编译2.0的建议

请提供有关使用.NET 3.0语法和编译2.0的建议,.net,c#-3.0,c#-2.0,.net,C# 3.0,C# 2.0,使用3.0编译器构建但针对2.0框架的DLL肯定会在只有2.0运行时的机器上运行吗 详情: 到目前为止,我们一直在使用.NET2.0编译器进行构建,以确保与2.0运行时兼容。现在我们想包括一些包含3.0语法的第三方源代码,但我们仍然需要与2.0运行时兼容。因此,我们正在考虑为我们的产品版本更改为3.0编译器,但目标是2.0框架 虽然这看起来应该可以工作,但有点吓人,所以我们真的很想听听尝试过这项技术的人的意见。是的,它会工作的,因为编译器扩展只是语法糖。只要确保它使用的是正确的service p

使用3.0编译器构建但针对2.0框架的DLL肯定会在只有2.0运行时的机器上运行吗

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


虽然这看起来应该可以工作,但有点吓人,所以我们真的很想听听尝试过这项技术的人的意见。

是的,它会工作的,因为编译器扩展只是语法糖。只要确保它使用的是正确的service pack。

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

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

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

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

您可以将以下C#3功能与2.0运行时一起使用,并使用:

  • 扩展方法
您不能使用以下各项:

  • LINQ扩展
  • 查询语法

感谢您非常详细的回答。