我在想是否有可能将字符串插值和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}";
我在想是否有可能将字符串插值和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}}
,使字符串插值不会改变它,从而避免了您的{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} ...
等更易读。
String.Format
吗? - kiziustring.Format
调用转换为插值,但是将现有的string.Format
调用更改为部分插值听起来只会让维护变得更加混乱。 - James Thorpe