Nie wiem, dlaczego ten kod się nie skompiluje:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
Jeśli podzielę to, działa dobrze:
var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";
Nie wiem, dlaczego ten kod się nie skompiluje:
var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";
Jeśli podzielę to, działa dobrze:
var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";
Odpowiedzi:
Zgodnie z dokumentacją :
Struktura interpolowanego ciągu jest następująca:
{ <interpolationExpression>[,<alignment>][:<formatString>] }
Problem polega na tym, że dwukropek służy do oznaczania formatowania, na przykład:
Console.WriteLine($"The current hour is {hours:hh}")
Rozwiązaniem jest zawarcie warunku w nawiasie:
var result = $"Descending {(isDescending ? "yes" : "no")}";
Console.WriteLine($"Cargo Weight: {(ship.WeightAvailable ? $"{ship.Weight:0.00}" : "n/a")}");