我只是想知道是否有可能结合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}";
答案 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}}等更具可读性。