Estoy confundido en cuanto a por qué este código no se compilará:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";Si lo divido, funciona bien:
var desc = isDescending ? " desc" : string.Empty; var result = $"{fieldName}{desc}";Según la documentación :
La estructura de una cadena interpolada es la siguiente:
{ <interpolationExpression>[,<alignment>][:<formatString>] }
El problema es que los dos puntos se usan para indicar formato, como:
Console.WriteLine($"The current hour is {hours:hh}")La solución es envolver el condicional entre paréntesis:
var result = $"Descending {(isDescending ? "yes" : "no")}";