ternario operator operador corto condicionales condicional c# .net ternary-operator string-interpolation c#-6.0

c# - operator - operador ternario php



¿Cómo usar el operador ternario dentro de una cadena interpolada? (1)

De acuerdo con la documentation :

La estructura de una cadena interpolada es la siguiente:

{ <interpolationExpression>[,<alignment>][:<formatString>] }

El problema es que los dos puntos se usan para denotar el 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")}";

Estoy confundido sobre 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}";