Estou confuso sobre o motivo pelo qual esse código não será compilado:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
Se eu dividir, funciona bem:
var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";
c#
.net
ternary-operator
string-interpolation
c#-6.0
Nate Barbettini
fonte
fonte
Respostas:
De acordo com a documentação :
O problema é que os dois pontos são usados para denotar formatação, como:
A solução é agrupar o condicional entre parênteses:
fonte
Console.WriteLine($"Cargo Weight: {(ship.WeightAvailable ? $"{ship.Weight:0.00}" : "n/a")}");