Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# StringTemplate 클래스로 더 읽기 쉬운 문자열 포맷팅하기

C#에서 StringTemplate 클래스는 형식 문자열(format string)을 파싱하여 String.Format과 호환되도록 설계된 유틸리티입니다. 이 클래스는 다양한 확장 메서드를 제공하는 NString 라이브러리에 포함되어 있으며, 이를 통해 문자열 조작 작업을 훨씬 간편하게 처리할 수 있습니다.

NString 라이브러리의 주요 확장 메서드

NString 라이브러리가 제공하는 대표적인 확장 메서드는 다음과 같습니다.

IsNullOrEmpty()
IsNullOrWhiteSpace()
Join()
Truncate()
Left()
Right()
Capitalize()

String.Format보다 나은 이유

StringTemplate.Format이 기존의 String.Format보다 우수한 가장 큰 이유는 가독성오류 감소입니다.

일반적인 String.Format은 번호 기반 자리 표시자(예: {0}, {1})를 사용하기 때문에 인수가 많아지면 어떤 값이 어느 자리에 들어가는지 파악하기 어렵고, 순서를 잘못 지정하면 런타임 오류나 잘못된 출력이 발생할 수 있습니다.

반면 StringTemplate은 이름이 지정된 자리 표시자(named placeholder)를 사용합니다. 값의 순서를 일일이 맞출 필요 없이 이름으로 직접 매핑되기 때문에 코드의 의도가 명확해지고 실수 가능성이 크게 줄어듭니다.

사용 예제

다음은 StringTemplate을 활용한 간단한 사용 예입니다.

string str = StringTemplate.Format("{ExamName} will held on {ExamDate:D}", new { p.ExamName, p.ExamDate });

위 예제에서 {ExamName}{ExamDate:D}처럼 속성 이름을 그대로 자리 표시자로 사용하며, :D와 같은 표준 날짜 서식 지정자도 String.Format과 동일한 방식으로 적용됩니다. 익명 객체(anonymous object)를 통해 값을 전달하므로 별도의 컬렉션이나 딕셔너리 없이도 깔끔하게 데이터를 바인딩할 수 있습니다.

정리

문자열 포맷팅 시 자리 표시자가 많거나 유지보수가 중요한 코드라면, StringTemplate의 이름 기반 자리 표시자 방식을 활용하는 것이 코드 가독성과 안정성 측면에서 훨씬 유리합니다.