为什么VS2015允许.Net 4.5.2应用程序使用C#6.0函数?

时间:2016-06-03 09:24:12

标签: c# .net roslyn c#-6.0

我在Visual Studio 2015中遇到了一个奇怪的行为。我正在编写一个针对4.5.2 .Net Framework的应用程序:

.Net version

然后在应用程序中,我尝试使用在C#6.0(来自.Net 6.0)中实现的一些东西:

int number = 456;
var name = nameof(number);
string str = $"Time = {DateTime.Now}";

我非常确定使用nameof的{​​{1}}和字符串格式仅在.Net 4.6中可用,但我仍然可以编译此代码 - 尽管我有#&# 39; m目标4.5.2。

我在Visual Studio 2013中运行相同的代码,也是针对4.5.2版本,但这次我无法编译代码($未找到)。

VS2015怎么可能允许我编译目标.Net Framework版本中不允许的代码?

我在黑暗中拍摄的是VS2015能够将C#6.0代码计算到CIL中,这仍然与以前的版本兼容,但我不确定它是否是正确的猜测。< / p>

1 个答案:

答案 0 :(得分:10)

C#6是C#语言的新版本,与.NET Framework版本无关。因此,即使使用旧版本的.NET,也可以使用C#6。 Roslyn compiler是VS2015附带的新编译器,但could be installed on older versions of VS是独立的。因此,无论您使用的是哪种框架版本,Roslyn都会为您编译新功能。

相关问题