【发布时间】:2016-06-03 09:24:12
【问题描述】:
我在 Visual Studio 2015 中遇到了一个奇怪的行为。我正在编写一个针对 4.5.2 .Net Framework 的应用程序:
然后在应用程序中,我尝试使用一些在 C# 6.0(来自 .Net 6.0)中实现的东西:
int number = 456;
var name = nameof(number);
string str = $"Time = {DateTime.Now}";
我很确定 nameof 和使用 $ 的字符串格式仅在 .Net 4.6 中可用,但我仍然能够编译此代码 - 尽管我的目标是 4.5.2。
我在 Visual Studio 2013 中运行了相同的代码,同样针对 4.5.2 版本,但这次我无法编译代码(nameof 未找到)。
VS2015 怎么可能允许我编译目标 .Net Framework 版本中不应允许的代码?
我在黑暗中的拍摄是 VS2015 能够将 C# 6.0 代码计算到 CIL 中,它仍然与以前的版本兼容,但我不确定这是否正确。
【问题讨论】:
-
直到我找到重复的 语言 才与 framework 绑定。只有 VS 2015 支持 C# 6
-
副本是第一个相关的答案
-
“只有 VS 2015 支持 C# 6” - 这是错误的@Panagiotis Kanavos
-
dotNET 库决定了您可以使用哪些类,IDE(因为它包含编译器)决定了您可以使用哪些语言功能。