01. String.Format() ?
C#을 사용하는 개발자들 중에서 String.Format()을 사용해서 문자열을 표현하는 사람들을 본 적이 없는 것 같다. 내가 C#에 대해서 처음 입문 했을 때가 2018년이었는데 그때도 본 적은 없는 것 같다.
String.Format().. 그러니까 포맷 문자열에 대한 예시는 다음과 같다. C언어에서 출력하는 것과 비슷하다.
int age = 21;
string name = "김민수";
// 1번
Console.WriteLine("이름: {0}, 나이: {1}", name, age);
// 2번
string result = string.Format("이름: {0}, 나이: {1}", name, age);
Console.WriteLine(result);
02. 문자열 보간(String Interpolation)
확실히 자세한 문자열 보간 : https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/tokens/interpolated
$ - 문자열 보간 - 형식 문자열 출력 - C# reference
'$' 토큰을 사용하는 문자열 보간은 기존 문자열 복합 서식 지정보다 문자열 출력의 서식을 지정하는 보다 읽기 쉽고 편리한 구문을 제공합니다.
learn.microsoft.com
문자열 보간은 C# 6.0 버전에 추가되었다. C# 6.0이 2015년에 출시되었다고 했으니까.. 사실 지금은 문자열 보간을 사용해서 표현하는게 더 익숙한 사람들이 많을거다. 문자열 보간은 다음과 같은 생김새를 가진다.
int age = 21
string name = "김민수"
Console.WriteLine($"이름: {name}, 나이: {age}");
문자열 앞에 '$' 기호를 붙이고 문자열로 변경하고 싶은 표현식은 '{ }'를 통해서 감싸주면 된다.
03. 문자열 보간을 사용하는 이유?
문자열 보간은 컴파일러가 내부적으로 String.Format 형식으로 변경한다. 그럼에도 불구하고 문자열 보간을 사용하는 이유는 가독성 향상에 큰 이점이 있으면서 삼항 연산자, 혹은 사칙연산과 같은 간단한 표현식을 쉽게 사용 할 수 있기 때문이다.
04. 문자열 보간에서 주의해야 하는 점
// Boxing 발생!
Console.WriteLine($"The value of pi is {Math.PI}");
// 방지!
Console.WriteLine($"The value of pi is {Math.PI.ToString()}");
위 코드와 같이 문자열 보간에서 Math.PI를 인자로 추가한다면 Math.PI는 double 타입으로 반환 후, object 타입으로 박싱을 수행하게 된다. 그래서 이런 경우에는 ToString 메서드를 통해서 String 타입을 인자로 전달한다면 박싱을 방지할 수 있다.
'독서 > Effective C#' 카테고리의 다른 글
[Effective C#] nameof() 연산자를 적극 활용하라 (0) | 2024.08.01 |
---|---|
[Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라 (0) | 2024.07.31 |
[Effective C#] 캐스트보다는 is, as가 좋다 (0) | 2024.07.29 |
[Effective C#] const보다는 readonly가 좋다. (1) | 2024.07.24 |
[Effective C#] 지역변수를 선언할 때는 var를 사용하는 것이 낫다 (1) | 2024.07.23 |