C# 문자열 보간 $ (string interpolation)

반응형

들어가며 요약: val log = $"a = {a}"

 

C#은 String을 String +oprator 이나, StringBuilder 보다 String 보간을 이용하는것이 무척이나 편리하다.

하지만, C# 6.0 이상부터 지원하는 점만 유의 하면된다.

 

기본 포멧 )

{<수식>[,<조정>][:<형식>]}

수식: 출력을 원하는 값이다.

조정: 최소 문자열 개수를 지정한다. (양수면 오른쪽 정렬, 음수면 왼쪽 정렬)

형식: 서식 문자열이다.

 

예시 1 )

int a = 10;
Console.Write($"a = {a}");
// --------
// output
// a = 10

 

예시 2 )

int a = 10;
int b = 20;
Console.Write($"a+b = {a + b}");
// --------
// output
// a+b = 30

 

예시 3 )

string name = "Corby";
var date = DateTime.Now;
Console.WriteLine($"안녕 {name} 오늘은 {date.DayOfWeek}이야, 지금 시간은 {date:HH:mm} 이야");
// ---------------
// Output
// 안녕 Corby 오늘은 Wednesday이야, 지금 시간은 13:40 이야

 

예시 4 )

Console.WriteLine($"|{"Left",-7}|{"Right",7}|");

const int FieldWidthRightAligned = 20;
Console.WriteLine($"{Math.PI,20}");
Console.WriteLine($"{Math.PI,20:F3}");
// --------------------
// Output:
// |Left   |  Right|
//     3.14159265358979
//                3.142

주의할점들

  • C# 8.0 이전 버전에는 @ 토큰과 $ 토큰 함께 사용할시 $토큰이 앞으로 와야한다. 상기 버전 이후는 상관 없다.
  • 중괄호{} 를 사용하는 경우에는 2번씩 입력하면 된다. $"{{hello}}" -> {hello}
  • 식에서 콜론을 사용 한다면 괄호를 이용하면 된다. $"{(a>b?a:b):F3}"

참고한 글

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

https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/composite-formatting#format-string-component

반응형

'프로그래밍 > C#, Unity' 카테고리의 다른 글

C# Hello world  (0) 2022.05.10
C# List - 리스트 생성자, 속성, 메서드 속도 및 성능  (0) 2021.09.08