C#/이펙티브 C#

아이템4. string.Format()을 보간 문자열로 대체하라.

공부를하자 2023. 6. 21. 01:56

1.string.Format()

-지정된 형식에 따라 개체의 값을 문자열로 변환하는 string 메소드

-문자열과 인자가 분리되기 때문에 가독성이 떨어진다.

-프로그램 실행전까지 결과 예측을 알기가 힘들다.

-문자열에 나타낸 인자의 개수와 실제 전달되는 개수가 일치하는지 검사를 하지 않기에 오류가 발생하면 예외를 던진다.

2.보간 문자열

-C#6.0부터 나온 문자열을 간결하게 작성하는 방식.

-$기호를 앞에 붙이고 문자열에 붙일 변수를 {}(중괄호) 붙이면 된다.

-변수가 중괄호에 닫힌 형태로 문자열과 같은 흐름에 있기에 가독성이 좋다.

 

-하지만 같은 메서드의 Math.PI double으로 타입이다.

 object 타입변환 과정에서 박싱과 언박싱이 일어날기에 루프문 같은 곳에  쓰이면 악영향을 있다.

-그러나 미리 사전에 전달할 인자를 변환하여 준다면 불필요한 박싱과 언박싱을 피할 수도 있다.

 

 

 3.표현식을 사용하여 문자열 보간

 -null 조건연산자 null 병합 연산자

  -조건표현식

*주의점: 위 같은 경우 컴파일 오류가 나는데 ' : ' 사용함에 있어 소괄호를 사용하여 조건식임을

 알려야 한다. 밑에 코드 참조.

3.결론

String.Format() 보다 보간 문자열을 사용하는 것이 훨씬 가독성이 좋다.

보간 문자열이 타입 변수를 박싱 언박싱 하는 것과 조건표현식을 사용할 주의점을 상기하자.