- C# 6.0에는 보간문자열(Interpolated string)이라는 새로운 기능이 도입되었다. 
- 보간문자열이 뭘까? 예시로 살펴보자 
int a = 5;
int b = 13;
string str1, str2;
// 이랬던 것을
str1 = string.Format("{0} + {1} = {2}", a, b, a + b);
Console.WriteLine(str1);
// 이렇게 바꾼다
str2 = $"{a} + {b} = {a + b}";
Console.WriteLine(str2);- string.Format() 은 직접 출력해보고 눈으로 확인하기 전까지는 코드를 제대로 작성했는지 쉽게 짐작하기 어려운 반면, 보간 문자열은 포맷 안에 실제 인자가 들어가기 때문에 직관적으로 이해할 수 있다. 
- 보간 문자열을 사용하려면 문자열 앞에 '$'을 붙이면 된다. 
Alignment와 FormatString
- string.Format("{0:N1}", a)처럼 보간 문자열도 FormatString을 지원한다.
- 더불어 alignment도 같이 살펴보자. 
- {<interpolatedExpression>,<alignment>:<formatString>}
//Alignment; 값이 양수이면 우측정렬, 음수이면 좌측 정렬이다.
int a = 5, b = 13;
Console.WriteLine($"{a, -5}|{b, 5}");
/* Result
5    |   13
*/
//FormatString
Console.WriteLine($"{Math.PI:F2}");
/* Result
3.14
*/삼항연산자를 사용할 때
- 다음과 같이 괄호를 한 번더 씌워야한다. 
var rand = new Random();
for(int i = 0; i < 5; i++)
{
    Console.WriteLine($"{(rand.NextDouble() < 0.5 ? "heads" : "tail")}");
}Miscellaneous
유니티에서는 보간문자열을 쓸 수 있을까?
- 유니티 2017버전은 기본적으로 .NET 3.5 버전, C# 4.0을 사용하고 있기 때문에 사용할 수 없다. 
- 빌드 세팅에서 스크립팅 런타임 업그레이드 설정을 하면 .NET 4.6 버전을 Experimental 옵션으로 사용할 수 있다. Unstable 하지만 C# 6.0의 문법을 실험해볼 수 있다. 
- https://docs.unity3d.com/kr/2018.1/Manual/ScriptingRuntimeUpgrade.html 
- 유니티 2018.1 베타버전에서 부터 .NET 4.6이 no longer experimental이라는 소식이 있으니 기대된다. 
- https://docs.microsoft.com/ko-kr/dotnet/csharp/tutorials/string-interpolation 
- 빌 와그너 (2017), Effective C# (3rd Edition), 한빛미디어 
'아카이빙 > C#' 카테고리의 다른 글
| [Effective C#] 불필요한 객체를 만들지 말라 (0) | 2018.08.11 | 
|---|---|
| [Effective C#] 박싱과 언박싱을 최소화하라 (0) | 2018.06.30 | 
| [C#] LINQ (0) | 2018.06.26 | 
| [C#] 람다식 (Lambda Expression) (0) | 2018.06.26 | 
| [C#] 이벤트와 델리게이트 (0) | 2018.06.25 |