방프리
20.03.25 Chapter1. C# 언어 요소 (Item 5) 본문
Item 5: 문화권별로 다른 문자열을 생성하려면 FormmatableString을 사용하라
다양한 언어권을 지원하는 부분은 무조건 생각을 하고 넘어가야 한다. 서비스가 항상 한국에서만 한다는 보장이 없기
때문이기도 하고 만약 해외에서 서비스를 진행하게 된다면 문자열 작업을 일일히 다 해줘야하기 때문에
초기단계부터 미리 준비해놓으면 좋기 때문이다.
작가는 C#에서 이 부분을 지원해주는 키워드가 있다고 하는데 바로 FormattableString이다.
이 FormattableString은 보간 문자열과 연관이 있는데 상황에 따라서 문자열이 일반 string이 될 수도 있지만
FormattableString 형태가 될 수도 있기 때문이다.
다음의 third라는 변수는 string 타입이 될 수도, FormattableString 타입이 될 수도 있다.
(실제로 돌려본 결과 System.String 결과값만 출력하였다.)
FormattableString을 사용한다면 미국에서는 소수점 기호인 '.'이 생성되고 유럽국가에서는 ','이 생성된다.
다음의 코드는 각 나라마다 문자열을 대응할 수 있도록 하는 부분이다.
하지만 사용하더라도 주의점이 있다.
첫 번째로는 문자열을 매개변수로 취하는 메서드에서는 사용이 불가능하고, 두 번째로는 string과 FormattableString을
모두 받아들일 수 있는 오버로딩 메서드를 작성해서는 안된다. 이럴 경우 var로 선언한 변수는 string으로 인식이 된다.
하지만 문자열 로컬라이징은 대부분 데이터 테이블에 정리해두어 key, value값으로 저장해둔 다음
불러오는 형태를 많이 사용한다.
(이 부분이 정리가 훨씬 더 편하고, 프로그래머가 처리할 일을 다른 사람에게 맡길 수 있기 때문이라 생각한다.)
FormattableString은 데이터 테이블에서는 할 수 없는 표기법 등을 넣어야 할 때 유용하게 사용할 수 있을 것 같다.
'C# > Effective C#' 카테고리의 다른 글
20.03.29 Chapter1. C# 언어 요소 (Item 7) (0) | 2020.04.01 |
---|---|
20.03.26 Chapter1. C# 언어 요소 (Item 6) (0) | 2020.03.28 |
20.03.24 Chapter1. C# 언어 요소 (Item 4) (0) | 2020.03.24 |
20.03.23 Chapter1. C# 언어 요소 (Item 3) (0) | 2020.03.23 |
20.03.21 Chapter2. C# 언어 요소 (Item 2) (0) | 2020.03.21 |