문자열 보간 기능 -> 링크
문자열 보간 기능 '$'을 이용하여 생성된 문자열은 1)단순 문자열일 수도 있지만, 2)FormattableString을 상속할 타입일 수도 있다.
1)문자열 : 문자열 자체
string first = $"It's the {DateTime.Now.Day} of the {DateTime.Now.Month} month";
2) FormattableString : format문자열과 format에 구성될 argument로 구성(MS)
FormattableString second = $"It's the {DateTime.Now.Day} of the {DateTime.Now.Month} month";
*FormattableString 객체라면 컴퓨터에 지정된 문화권을 고려하여 문자열을 생성할 수 있다.
(소수를 출력할때 미국이라면 소수점기호 '.', 유럽 대부분 국가라면 소수점기호 ','가 적용되도록 구현할 수 있다.)
public static string ToGerman(FormattableString src) { return string.Format(null, System.Globalization.CultureInfo.CreateSpecificCulture("de-DE"), src.Format, src.GetArguments()); } public static string ToFrenchCanada(FormattableString src) { return string.Format(null, System.Globalization.CultureInfo.CreateSpecificCulture("fr-CA"), src.Format, src.GetArguments()); }
string.Format : 합성된 문자열 반환 (MS)
-> 문자열 보간 기능은 글로벌화나 로컬화에 필요한 모든 기능을 갖추고 있다. 문화권을 고려하여 문자열을 생성하는 복잡한 기능을 잘 감추고 있기도 하다. 문화권을 지정이 필요한 경우 FormattableString 객체를 생성하도록 코드를 작성하는 방법을 이용한다.
** 아직 FormattableString을 사용해본적이 는데, 잘 기억해뒀다 필요한 상황에 이를 이용해보자.
[참고]
Effective C# 아이템 5:문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라.
728x90
'Software Development > C#' 카테고리의 다른 글
[C#] abstract & virtual 연산자와 override & new 연산자 (0) | 2021.01.25 |
---|---|
[Effective C#] nameof() 연산자 (0) | 2021.01.24 |
[Effective C#] string.Format()을 보간 문자열로 대체하라 (0) | 2021.01.17 |
[Effective C#] 캐스트보다는 is, as가 좋다. (0) | 2021.01.16 |
[Effective C#] const보다는 readonly 사용하기 (0) | 2021.01.13 |