【问题标题】:What is the final format for string interpolation in VS 2015?VS 2015 中字符串插值的最终格式是什么?
【发布时间】:2015-03-02 06:16:30
【问题描述】:

我无法让字符串插值工作。我发现的 MS 的最新消息是

http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

然而,所有所说的没有工作。任何人都知道字符串插值是否进入了 VS 2015?有没有关于它的文件?能举个例子吗?

例如,这些格式都不起作用(已编辑):

int i = 42;
var s = "\{i}";  // correction after jon's answer: this works!
var s = $"{i}";  // compiler error
var s = "{{i}}"; // no interpolation

编辑关于 VS 2015 CTP 6 (20.4.2015 )

最终版本是

var s = $"{i}"

当前 Resharper 版本也支持 ReSharper 9.1.20150408.155143

【问题讨论】:

    标签: c# string-interpolation c#-6.0


    【解决方案1】:

    您的第一个表单确实在 VS2015 预览版中工作:

    int i = 42;
    var s = "\{i}";
    

    为我编译并运行。 ReSharper 抱怨说,但那是另一回事。

    对于 C# 的 final 版本,它是:

    var s = $"{i}";
    

    【讨论】:

    • 看起来承诺的智能感知还没有工作。
    • 正确;这是最新的功能描述 PDF 供参考(参见第 5 节):codeplex.com/Download?ProjectName=roslyn&DownloadId=930852
    • 确认在 2015 年 1 月 16 日发布的 VS 2015 CTP 中格式已更改。var s = $"{i}";
    • 我可能会将最新版本放在最上面,以供我们这些阅读不太好并且过早寻找其他地方的人使用! (在stackoverflow.com/questions/29154868/… 被标记为重复之前由最高的赞成票证明)
    • 我在 vs2015 上使用最新的 R# 和目标框架 4.5.1 并且 R# 建议使用字符串插值及其编译/工作?然后它才在构建服务器上失败(与 2013 年在 teamcity 上相比) - ??
    【解决方案2】:

    字符串插值正在进入 VS 2015。它的最新语法(尚未准备好预览,但已进入 VS2015 CTP5)是这样的:

    string s = $"{i}";
    

    它还支持使用 FormattableString 类的 am IFormattable 结果:

    IFormattable s = $"{i}";
    

    最新的设计文档在这里:String Interpolation for C# (v2)

    您可以通过 http://tryroslyn.azurewebsites.net 使用最新的 Roslyn 版本在线查看。 Here's the specific example.

    【讨论】:

    • 感谢您提供有用且内容丰富的回复。 YouCast 很酷 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2020-09-10
    • 2010-10-25
    相关资源
    最近更新 更多