我对为什么此代码无法编译感到困惑:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
如果我将其拆分,则可以正常工作:
var desc = isDescending ? " desc" : string.Empty; var result = $"{fieldName}{desc}";
根据文档:
插值字符串的结构如下: { <interpolationExpression>[,<alignment>][:<formatString>] }
插值字符串的结构如下:
{ <interpolationExpression>[,<alignment>][:<formatString>] }
问题在于冒号用于表示格式,例如:
Console.WriteLine($"The current hour is {hours:hh}")
解决方案是 将 条件 包装 在括号中:
var result = $"Descending {(isDescending ? "yes" : "no")}";