c# - 보간 문자열에서 삼항 연산자를 사용하는 방법?


이 코드가 컴파일되지 않는 이유에 대해 혼란 스럽습니다.

var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";

만약 내가 그것을 분할, 잘 작동합니다 :

var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";

Answers



문서 에 따르면 :

보간 된 문자열의 구조는 다음과 같습니다.

$ "{ <interpolation-expression> <optional-comma-field-width> <optional-colon-format> }"

문제는 콜론이 다음과 같은 서식 지정을 나타내는 데 사용된다는 것입니다.

Console.WriteLine($"Time in hours is {hours:hh}")

그래서, tl; dr 답은 : 조건문을 괄호로 묶습니다.

var result = $"descending? {(isDescending ? "yes" : "no")}";