组合字符串插值和string.format
本文关键字:string format 插值 字符串 组合 | 更新日期: 2023-09-27 18:09:02
我只是想知道是否有可能将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}}
来转义{0}
,因此字符串插值将其单独保留。然后您可以将字符串传递给string.Format
以替换{0}
。
对于那些想知道为什么要这样做的人,我可以想象一种可能性,您想要做某种可重用的模板,例如:
var urlTemplate = $"<a href='{BaseHref}/some/path/{{0}}'>{{1}}</a>";
var homeLink = string.Format(urlTemplate, "home.html", "Home");
var aboutLink = string.Format(urlTemplate, "about.html", "About Us");
当然,这个例子太简单了,不能保证使用这种技术,但是想象一下,如果您有一个包含大量变量的模板,并且您只关心从一个呈现模板更改到另一个呈现模板中的两个变量。这将比在你的模板中使用{32}, {33}, {34}...
等更具可读性。