结合字符串插值和string.format

时间:2016-09-26 11:30:06

标签: c#

我只是想知道是否有可能结合C#6.0和string.format中引入的字符串插值?有这样聪明的想法吗?

string fancyString = $"My FancyString was created at { DateTime.Now }" + " and I want to add some static with string.format like {0}";

1 个答案:

答案 0 :(得分:9)

通过将{0}写为{{0}}来逃离string.Format,因此字符串插值不会让它独自出现。然后,您可以将字符串传递到{0}以替换var urlTemplate = $"<a href='{BaseHref}/some/path/{{0}}'>{32}, {33}, {34}...</a>"; var homeLink = string.Format(urlTemplate, "home.html", "Home"); var aboutLink = string.Format(urlTemplate, "about.html", "About Us");

对于那些想知道你为什么要这样做的人,我可以想象你想要做某种可重用模板的一种可能性,例如:

{{1}}

当然这个例子太简单了,无法保证这样的技术,但想象一下,如果你有一个包含大量变量的模板,你只需要将一对夫妇从一个渲染模板改为下一个。这比在模板中使用{{1}}等更具可读性。