Je ne comprends pas pourquoi ce code ne compilera pas:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
Si je le sépare, cela fonctionne très bien:
var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";
c#
.net
ternary-operator
string-interpolation
c#-6.0
Nate Barbettini
la source
la source
Réponses:
Selon la documentation :
Le problème est que les deux points sont utilisés pour désigner la mise en forme, comme:
La solution consiste à encapsuler le conditionnel entre parenthèses:
la source
Console.WriteLine($"Cargo Weight: {(ship.WeightAvailable ? $"{ship.Weight:0.00}" : "n/a")}");