结合字符串插值和string.format

Tom*_*Tom 4 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}";
Run Code Online (Sandbox Code Playgroud)

ada*_*101 10

{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");
Run Code Online (Sandbox Code Playgroud)

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