c# - 補間された文字列の中で三項演算子を使用する方法は?


なぜこのコードがコンパイルされないのか混乱しています。

var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";

私はそれを分割した場合、それはうまく動作します:

var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";


Answers



ドキュメントによると:

補間された文字列の構造は次のとおりです。

$ "{ <interpolation-expression> <optional-comma-field-width> <optional-colon-format> }"

問題は、コロンがフォーマットの意味で使用されていることです

Console.WriteLine($"Time in hours is {hours:hh}")

だから、 tl; drの答えは、条件式をかっこで囲みます。

var result = $"descending? {(isDescending ? "yes" : "no")}";