问题
I\'m confused as to why this code won\'t compile:
var result = $\"{fieldName}{isDescending ? \" desc\" : string.Empty}\";
If I split it up, it works fine:
var desc = isDescending ? \" desc\" : string.Empty;
var result = $\"{fieldName}{desc}\";
回答1:
According to the documentation:
The structure of an interpolated string is as follows:
{ <interpolationExpression>[,<alignment>][:<formatString>] }
The problem is that the colon is used to denote formatting, like:
Console.WriteLine($"The current hour is {hours:hh}")
The solution is to wrap the conditional in parenthesis:
var result = $"Descending {(isDescending ? "yes" : "no")}";
来源:https://stackoverflow.com/questions/31844058/how-to-use-the-ternary-operator-inside-an-interpolated-string