더북(TheBook)

.NET은 ToLowerInvariant와 같이 일부 문화권에 따라 영향을 받지 않는 버전의 문자열 메서드를 제공한다. 또한, 불변이면서 순서적 대안을 갖는 StringComparison 값을 받는 동일한 메서드의 일부 오버로드도 제공한다. 따라서 동일한 메서드를 좀 더 안전하고 빠르게 작성할 수 있다.

public bool isGif(string fileName) {
    return fileName.EndsWith(".gif", StringComparison.OrdinalIgnoreCase);
}

이 메서드를 사용하면 새로운 문자열을 만드는 것을 피할 수 있다. 현재 문화권에 따른 복잡한 규칙을 포함하지 않는 문화권에서도 문자열을 안전하고 빠르게 비교하게 해 주는 메서드를 사용하는 셈이다. StringComparison.InvariantCultureIgnoreCase를 사용할 수도 있을 것이다. 하지만 순서 비교와는 달리, 이것은 몇 가지 번역 규칙을 더 추가하는 것이다. 그 예로는 파일 이름이나 다른 리소스 식별자에 문제를 일으킬 수 있는 독일어의 움라우트나 자소를 라틴어로 처리하는 것(ß 대 ss) 등이 있다. 순서 비교는 문자 값을 추가적인 번역 없이 직접 비교한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.