2016-09-26 69 views
2

我只是想知道是否有可能結合字符串插值,它是在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}"; 
+2

*爲什麼*你想要這樣做?這樣做對於字符串插值不可能實現什麼? – Fabjan

+0

你將如何準確使用它?將插入的字符串傳遞給'String.Format'? – kiziu

+0

你打賭你可以使用stringformat插值後像這樣string.format(fancyString,SomethingToFillYour {0} With);但爲什麼你會想要這樣做? – Thorarins

回答

3

讓您遠離{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}...等更具可讀性。