ITEM 4 :: EFFECTIVE C#


안녕하세요, 네번째 시간입니다.


이번 시간에는 굉장히 유용한 팁을 포함하고 있는 주제입니다.

매번 이 주제 때문에 예전에 고생했던 기억이 꽤 있는데요. 하하.

C#은 그러한 부분에 대한 문제점을 최대한 고쳐놓은 보간문자열이 존재합니다.

따라서 이 아이템의 주제는 그러한 예전, 구식의 Format을 사용하는 것이 아니라, 신식의 보간문자열을 사용하도록 하자라는 주제와 일맥상통합니다.

4번째 아이템은 바로, String.Format()을 보간 문자열로 대체하라 입니다.

간단한 설명과, 장점과 단점, 그리고 정리하여 전체적으로 서술 하겠습니다. 설명, 갑시다!

설명

보간 문자열이란 예전 string.Format()을 좀 더 나은 방법으로, 혹은 더 쉽게 사용할 수 있게 만들어 놓은 형식화 된 문자열의 형식이다. 이전에는 string.Format을 사용하여 아래와 같이 사용했다. 변화한 방식 역시 아래에 있다.

int a = 5;
int b = 13;
string str0, str1, str2;

//이랬거나
 str0 = "a의 값" + "b의 값"


// 혹은 이랬던 것을
str1 = string.Format("{0} + {1} = {2}", a, b, a + b);
Console.WriteLine(str1);

// 이렇게 바꾼다
str2 = $"{a} + {b} = {a + b}";
Console.WriteLine(str2);

이렇게 사용하면 장점으로는 코드 가독성이 대폭 향상된다. 또한 컴파일러 입장에서는 정적 타입 검사를 수행할 수 있기 때문에 개발자의 실수를 미연에 방지 할 수 있다. 마지막으로 기존 방식에 비해 문자열을 생성하기 위한 표현식의 바리에이션이 풍부해졌다! (단점으로는 보간 문자열의 무분별한 사용은 코드를 지독하게 복잡한 코드로 만들 수 있다. 그렇게 짜서는 안되겠다.)

생성과 사용 그 방법에 대해

보간 문자열을 사용하려면 문자열 앞에 $를 붙이면된다.

string str = $"안녕하세요, 보간문자열입니다.";

위와 같이 말이다. 보간 문자열에서의 변수를 사용하는 방법 또한 간단하다.

string a = "하하!";
string str = $"{a} 안녕하세요, 보간문자열입니다.";

그리고 문자열 형식의 속성을 사용할 때에는

float t = pie.value;
string str  =$"원주율을 둘째짜리 까지만 사용한다면{t:F2}가 됩니다.";

와 같이 사용하며, 문자열 내부에서 :를 사용하여 삼항 연산자를 사용할 경우에는 {}안에 ()를 사용하는 방식으로 사용하면 사용할 수 있다.(그냥 사용하면 :를 삼항연산자가 아니라 속성 형식자로 인식해버린다.)

정리

이 위에서 적어놓은 형식보다 더 많은 형식들이 보간 문자열에는 존재한다. 예전의 string.Format을 사용하는 것도 좋지만, 더 업그레이드 된 기능이 있다면 그 기능을 써야하지 않겠는가? 이것으로 아이템 4를 마친다!