web-dev-qa-db-ja.com

条件演算子を使用したC#補間文字列

補間された文字列内で条件演算子を使用しようとしましたが、コロンが含まれているため、コロンの後にフォーマット文字列が来るとコンパイラは考えています。

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

このタイプのステートメントはどのように使用できますか?私の頭に浮かぶのは、次のようなものだけです。

var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";
34
wertzui

_{}_内で括弧内に文字列を配置する必要があるため、{(1 == 1 ? "yes" : "no")}となります。

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

括弧内のコードは変数を返し、それが中括弧内で許可される唯一のものです。コロン「:」は文字列補間の特殊文字であるため、括弧で囲む必要があります。

7
GregoryHouseMD