[C#] String 보간법(interpolation)


Development note/C#  2019. 7. 5. 09:00

안녕하세요. 명월입니다.


이 글은 C#에서 String 보간법(interpolation)에 대한 글입니다.

저도 코딩 표준을 정리하면서 알게된 String 보간법인데 꽤 편리한 기능이 많이 있는 것 같아서 조사해 봤습니다.

링크 - https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated


먼저 String 보간법은 String내에 보간 표현식을 작성한 것은 그 값으로 대체되는 방식인그 그 값은 $의 기호로 구분됩니다.

string name = "명월 일지";
var date = DateTime.Now;

// 일반적인 String.format입니다.
Console.WriteLine("{0}! 오늘은 {1}입니다., 현재 시간은 {2:HH:mm}입니다.", name, date.DayOfWeek, date);

// String 보간법(interpolation)
Console.WriteLine($"{name}! 오늘은 {date.DayOfWeek}입니다., 현재 시간은 {date:HH:mm}입니다.");

String의 보간 표현식은 다음과 같습니다.

{<interpolationExpression>[,<alignment>][:<formatString>]}
요소 기술
interpolationExpression 형식화 할 결과를 생성하는 표현식입니다. null 결과의 캐릭터 라인 표현은 String.Empty 입니다.
alignment 보간 표현식 결과의 문자열 표현에서 최소 문자 수를 정의하는 상수 표현식입니다. 양수이면 문자열 표현이 오른쪽 정렬됩니다. 음수이면 왼쪽 정렬입니다.
formatString 표현식 결과 유형에 의해 지원되는 형식 문자열.
Console.WriteLine($"|{"Left",-7}|{"Right",7}|");

const int FieldWidthRightAligned = 20;
Console.WriteLine($"{Math.PI,FieldWidthRightAligned} - PI 값");
Console.WriteLine($"{Math.PI,FieldWidthRightAligned:F3} - 세 자리수 까지 표현한다.");

보간법은 간단한 삼항식으로도 계산이 가능합니다.

int data = 0;
Console.WriteLine($"{(data == 0 ? "Zero" : "Number")}");

만약 String식에서 중괄홀르 사용할 일이 있으면 연달아 사용하면 됩니다.

String data = "중괄호";
Console.WriteLine($"{{{data}}}");

여기까지 C# String 보간법에 대한 설명였습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.