C# 使用条件运算符插入字符串
C# interpolated string with conditional-operator
我试图在一个内插字符串中使用条件运算符,但是因为它里面有一个冒号,编译器认为冒号后面是一个格式字符串。
$"test {foo ? "foo is true" : "foo is false"}";
如何使用这种类型的语句?
我唯一想到的是这样的:
var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";
$"test {(foo ? "foo is true" : "foo is false")}";
圆括号内的代码 returns 是一个变量,这是大括号内唯一允许的内容。冒号':'是字符串插值中的特殊字符,需要加括号。
你需要把字符串放在{}
内的括号里,所以:{(1 == 1 ? "yes" : "no")}
.
我试图在一个内插字符串中使用条件运算符,但是因为它里面有一个冒号,编译器认为冒号后面是一个格式字符串。
$"test {foo ? "foo is true" : "foo is false"}";
如何使用这种类型的语句? 我唯一想到的是这样的:
var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";
$"test {(foo ? "foo is true" : "foo is false")}";
圆括号内的代码 returns 是一个变量,这是大括号内唯一允许的内容。冒号':'是字符串插值中的特殊字符,需要加括号。
你需要把字符串放在{}
内的括号里,所以:{(1 == 1 ? "yes" : "no")}
.