【发布时间】:2016-01-19 20:30:35
【问题描述】:
阅读以下内容后:
在我看来,除了String Interpolation,我在 VS2015 中针对 .NET 4.51 编译的任何项目都可以使用新的 C# 语言功能。
但是我在我的开发机器上使用 VS2015 目标 4.51 尝试了以下代码:
string varOne = "aaa";
string varTwo = $"{varOne}";
if (varTwo == "aaa")
{
}
我不仅没有收到编译器错误,而且正如预期的那样,varTwo 包含 aaa。
谁能解释为什么会这样,因为我没想到会这样?我猜我错过了 FormattableString 的真正含义。谁能举个例子?
【问题讨论】:
-
或许将字符串转换为
String.Format调用足够聪明? -
FormattableString是在 .NET 4.5 中引入的。 -
@MarcinJuraszek 那么你是说 i3arnon 对 Rubenisme 的评论在“Does C# 6.0....”中是错误的吗?
-
如果编译器可以针对它(由于异步等其他功能而无法使用),它可能甚至可以使用 1.0 -
String.Format永远存在(这是我理解的插值编译) -
@TheEdge 请解释为什么您“不会期望这会起作用”-您链接到的帖子中的信息似乎应该足够了-因此不清楚您要澄清的部分。