보간 문자열 내에서 삼항 연산자를 사용하는 방법은 무엇입니까?


408

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

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

분할하면 정상적으로 작동합니다.

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

9
@Sinatr 업데이트 링크 : thebillwagner.com/Blog/Item/…
Nate Barbettini

네임 스페이스 별칭 한정자 (: :) 에도 동일하게 적용됩니다 .
Uwe Keim

답변:


722

설명서 에 따르면 :

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

{ <interpolationExpression>[,<alignment>][:<formatString>] }

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

Console.WriteLine($"The current hour is {hours:hh}")

이 솔루션은하는 것입니다 포장 괄호 안에 조건을 :

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

2
더 흥미로운 예는 중첩 보간 문자열을 사용해야하는 경우입니다. Console.WriteLine($"Cargo Weight: {(ship.WeightAvailable ? $"{ship.Weight:0.00}" : "n/a")}");
Jan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.