728x90
반응형

C# 6.0에서 문자열 보간(String interpolation)이라는 기능이 추가되었다.

$ 특수문자는 문자열 리터럴을 보관된 문자열로 식별하는데, 보간 된 문자열이란 보간 식이 포함될 수 있는 문자열 리터럴이다.

기존 String.Format()과 기능은 동일 하지만 더 읽기 쉽고 편리하게 출력 서식을 지정할 수 있다고 한다.

기본적으로 사용은 문자열 앞에 $기호를 추가하면 된다.

$"오늘은 {month}월 {day}일이야."

 

보간 된 문자열의 구조

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

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

대괄호 안의 요소는 선택사항으로, 각 요소들이 의미하는 바는 아래 표와 같다.

요소 설명
interpolationExpression 서식을 지정할 결과를 생성하는 식.
null의 문자열 표현은 String.Empty
alignment 식 결과의 문자열 표현에 최소 문자수를 정의하는 값을 갖는 상수 식
양수: 문자열 표현 오른쪽
음수: 문자열 표현 왼쪽
formatString 식 결과의 형식을 기준으로 지원되는 서식 문자열.
서식 문자열 구성요소 참고

예시:

Console.WriteLine($"|{"왼쪽",-7}|{"오른쪽",7}|");

const int FieldWidthRightAligned = 20;
Console.WriteLine($"{Math.PI,FieldWidthRightAligned} - 원주율의 기본 형식");
Console.WriteLine($"{Math.PI,FieldWidthRightAligned:F3} - 원주율을 소수점 셋째자리까지 나타내기");

결과:

|왼쪽   |  오른쪽|
    3.14159265358979 - 원주율의 기본 형식
                3.142 - 원주율을 소수점 셋째자리까지 나타내기

 

특수문자

보간 된 문자열에서 중괄호를 사용하고 싶다면 중괄호를 연달아 쓰면 된다.

예시:

int age = 34;
Console.WriteLine($"public int {age}");
Console.WriteLine($"public int {{age}}");

결과:

line 2: public int 34
line 3: public int age

그리고 조건부 삼항 연산자(?:)도 사용할 수 있는데, 보간 된 문자열의 구조에서 콜론(:)이 특별한 의미를 가지고 있어서 조건식을 괄호로 묶어 사용해야 한다.

예시:

int age = 34;
Console.WriteLine($"public int {(age >= 30 ? "30대":"30대 아님")}");

결과:

30대

참고 사이트

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/tokens/interpolated

 

$ - 문자열 보간 - C# 참조

문자열 보간을 이용한 구문으로 기존의 문자열 합성보다 읽기 쉽고 편리하게 문자열 출력의 서식을 지정할 수 있습니다.

docs.microsoft.com

 

728x90
반응형