Я не понимаю, почему этот код не скомпилируется:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
Если я разделю это, это работает отлично:
var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";
c#
.net
ternary-operator
string-interpolation
c#-6.0
Нейт Барбеттини
источник
источник
Ответы:
Согласно документации :
Проблема в том, что двоеточие используется для обозначения форматирования, например:
Решение состоит в том, чтобы обернуть условное в круглые скобки:
источник
Console.WriteLine($"Cargo Weight: {(ship.WeightAvailable ? $"{ship.Weight:0.00}" : "n/a")}");