【发布时间】:2009-09-03 17:27:22
【问题描述】:
我在 VS2008 中使用 Resharper 4.5.1 进行编码,但项目设置为针对 .NET Framework 2.0。
不过,Resharper 仍在提出与 .NET 3.5 框架相关的建议。例如,它告诉我应该使用集合初始化器等...
我查看了设置,但似乎找不到告诉它给出 2.0 特定建议的复选框。
【问题讨论】:
-
集合初始化器是一种语言特性,不是 .NET 框架的一部分。您可以在针对 .NET 2.0 的项目中使用 C# 3.0 的某些部分。 Resharper 真的会建议无法编译的东西吗?
-
嗯,不,但它确实暗示了会在目标系统上爆炸的东西,目标系统只有 .NET 2.0。
-
那您能举出更多相关的例子吗?
-
好吧,我认为的示例会在仅 .NET 2.0 的机器上崩溃,因为 JIT 编译器对集合初始化器一无所知。 bdukes 提供的答案实际上解决了这个问题。
-
集合初始值设定项由 C# 3.0 编译器编译成有效的 .net 2.0 IL。它们在只有 .net 2.0 的机器上运行良好。唯一需要 .net 3.5 的 C# 3.0 功能是扩展方法和 LINQ,因为它们需要在新的 .net 3.5 程序集中定义的类型。
标签: c# visual-studio visual-studio-2008 resharper resharper-4.5