早期c#版本中的c#6字符串插值

早期c#版本中的c#6字符串插值,c#,string-formatting,c#-6.0,C#,String Formatting,C# 6.0,我喜欢c#6.0字符串插值功能,这是我一直想要的。我的问题是,我拥有visual studio 2013,现在还不想升级到2015。我研究了是否可以在vs2013中运行6.0,但这似乎不可能,所以现在我的问题是:我是否可以从6中导出这个字符串插值功能,并在我的早期版本中将其作为库运行?如果可能的话,我想现在就开始使用这个功能,并在我最终升级时使它与6.0保持向前兼容 --更新-- 由于无法实现确切的语言功能,是否可以使用一种变体,该变体在早期c#中仍然语法正确,但允许在字符串中使用相同的标记名,

我喜欢c#6.0字符串插值功能,这是我一直想要的。我的问题是,我拥有visual studio 2013,现在还不想升级到2015。我研究了是否可以在vs2013中运行6.0,但这似乎不可能,所以现在我的问题是:我是否可以从6中导出这个字符串插值功能,并在我的早期版本中将其作为库运行?如果可能的话,我想现在就开始使用这个功能,并在我最终升级时使它与6.0保持向前兼容

--更新--
由于无法实现确切的语言功能,是否可以使用一种变体,该变体在早期c#中仍然语法正确,但允许在字符串中使用相同的标记名,如6次使用?这将使以后的升级更容易,并且还允许现在使用真实的令牌名而不是数字占位符

库不能更改语言的语法


您可以强制VS使用新的编译器,但不能更改IDE本身。这意味着语法高亮显示、IntelliSense和调试等功能不适用于您的代码。因此,我认为尝试这样做是不值得的。

因为这是C#6语言的特性,所以不应该在C#5及更低版本下编译。但是,您可以运行预构建脚本将
$“{typeof(string).Name}”
转换为
string.Format(“{0}”,typeof(string).Name)。但是,如果你在VS中编写代码,你仍然会在每次使用美元字符串时看到红色的曲线。C#6中有很多很酷的功能,所以更好的升级VS 2015社区版是免费的。有很多非常重要(而且很酷)VS 2015中的功能也一样-如liver performance profiler.MS使用Bcl.Async实现了这一点,但这是一个非常重要的功能,值得投资。@PanagiotisKanavos Bcl.Async为您提供了一种在新VS中使用新功能(以及新编译器)的方法,但使用的是旧框架。这个问题询问如何在旧的VS.Bcl中使用新功能。异步不需要新的编译器,它适用于VS 2012及以上版本。在2012年和2013年,我使用它们为.NET 4.0项目添加了
async
支持。Build和Async的组合部署了一个新的(预)编译器。如果微软认为字符串插值同样重要,他们可以用同样的方式释放它。不值得,2015年确实有一个功能齐全的免费edition@PanagiotisKanavos对于async await,VS2012是新的编译器(如果使用VS2012以.Net 4.5为目标,则不需要使用Bcl.async来使用async await)。Async不部署新的编译器(当然也没有针对Async的预编译器)。VS 2012编译器修改由Bcl.Build包部署,这是Bcl.Async的一个间接依赖项。如果没有它,您将无法在.NET4项目中使用async/await