참조
1. FormattableString 이란?
- C# 6.0에서 추가된 클래스 입니다.
- 문자열 보간 기능('$') 을 이용하여 생성된 문자열은 단순 문자열일 수도 있지만, FormattableString 을 상속할 타입일 수도 있습니다.
- FormattableString 은 문자열의 연결을 돕는 기능이 있어, 문화권과 언어를 지정하여 문자열을 생성하는데 활용할 수 있습니다.
- 아래 예제에서 var로 선언하면 변수 vs는 string 객체가 될 수도 있겠지만, FormattableString을 상속한 타입의 객체가 될 수도 있습니다.
string s = $"It's the {DateTime.Now.Day} of the {DateTime.Now.Month} month";
var vs = $"It's the {DateTime.Now.Day} of the {DateTime.Now.Month} month";
FormattableString fs = $"It's the {DateTime.Now.Day} of the {DateTime.Now.Month} month";
2. FormattableString 활용
- FormattableString 객체 라면 컴퓨터에서 지정된 문화권을 고려하여 문자열을 생성할 수 있습니다.
- 예를들어, 소수를 출력할 때 미국이라면 소수점 기호 '.', 유럽 대부분의 국가라면 소수점 기호 ',' 가 적용되도록 구현할 수 있습니다.
using System;
using System.Globalization;
namespace GlobalString
{
class Program
{
static void Main(string[] args)
{
FormattableString fs = $"{Math.PI}";
Console.WriteLine(fs);
Console.WriteLine(ToGerman(fs));
}
public static string ToGerman(FormattableString src)
{
return string.Format(
CultureInfo.CreateSpecificCulture("de-De"),
src.Format,
src.GetArgument(0));
}
}
}
- 실행 결과
3.1415
3,1415
3. 정리
- 문자열 보간 기능('$') 은 글로벌화나 로컬화에 필요한 모든 기능을 갖추고 있습니다.
- 문화권을 고려하여 문자열을 생성하는 복잡한 기능을 잘 감추고 있기도 합니다.
- 문화권 지정이 필요한 경우, FormattableString 객체를 생성하도록 코드를 작성하는 방법을 이용합니다.
728x90
'C# > Effective C# 책 정리' 카테고리의 다른 글
[C#] Effective C# 1장. 지역변수를 선언할 때는 var를 사용하는 것이 낫다. (0) | 2023.02.25 |
---|---|
[C#] Effective C# 3장. 캐스트보다는 is,as가 좋다. (0) | 2023.02.24 |
[C#] Effective C# 7장. 델리게이트를 이용하여 콜백을 표현하라. (0) | 2023.02.23 |
[C#] Effective C# 9장. 박싱과 언박싱을 최소화하라. (0) | 2023.02.23 |
[Effective C#] 45. 메서드가 실패했음을 알리기 위해서 예외를 이용하라 (0) | 2021.11.30 |
이 글을 공유하기