2015-11-02 63 views
16

我試圖在內插字符串中使用條件運算符,但因爲它裏面有冒號,所以編譯器認爲在冒號出現後會出現格式字符串。帶條件運算符的C#內插字符串

$"test {foo ? "foo is true" : "foo is false"}"; 

我該如何使用這種類型的語句? 是在我腦海中的唯一事情是這樣的:

var fooString = foo ? "foo is true" : "foo is false"; 
$"test {fooString}"; 
+2

這是[Interpolated string](https://msdn.microsoft.com/zh-CN/library/dn961160.aspx)。 [Verbatim字符串](https://msdn.microsoft.com/en-GB/library/362314fe.aspx)是以「@」開頭的字符串,可能包含通常需要轉義的字符。 –

回答

37

你需要把字符串放在括號內{},所以:{(1 == 1 ? "yes" : "no")}

-1
$"test {(foo ? "foo is true" : "foo is false")}"; 

小括號返回一個變量,那就是大括號內允許與分號和格式化沿着唯一的事情。