2015-11-02 94 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")}"; 

小括号返回一个变量,那就是大括号内允许与分号和格式化沿着唯一的事情。