除了早期的.NET框架版本之外,Visual Studio可以针对早期的C#语法吗?
简单的部分:
使用下拉列表在Visual Studio 2010项目中定位.NET 2.0框架。
困难的部分:
是否有可能针对特定的语法版本 – 例如var s = "hello world"
在VS2008及更高版本中是有效的语法糖,但不能在VS2005中编译。 VS2010可以配置为在编译时标记这个吗?
这可以通过在项目设置中指定语言版本来完成。 要将语言版本设置为C#2.0,请执行以下操作
- 右键单击项目并选择“属性”
- 转到“构建”选项卡
- 单击“高级”按钮
- 将“语言版本”下拉菜单更改为“ISO-2”
以下是Visual Studio 2010中的其他选项及其含义。
- ISO-1:C#1.0 / Visual Studio RTM和2003
- ISO-2:C#2.0 / Visual Studio 2005
- C#3.0:C#3.0 / Visual Studio 2008
- 默认值:C#4.0 / Visual Studio 2010
是。 从IDE中,设置:
Project Properties -> Build -> Advanced -> Language Version : ISO-2
是的,你可以这样做,正如其他人所说的那样 – 但它不是C#1编译器的完美模拟,正如我在发表演讲时发现的那样。 它会发现语法中的“大”变化,但不会发现行为中的一些细微变化。 例如,在C#1中没有方法组转换,因此您无法执行此操作:
delegate void Foo(string x); void Bar(string y) {} ... Foo foo = Bar;
…但是简单地将C#4编译器设置为目标C#1不会选择它。