더북(TheBook)

이렇게 코드를 작성하는 게 훨씬 수월하지 않은가? 사용 방법은 앞서 소개한 예제와 동일하다. 더 중요한 건 우리가 정의한 모든 열거형 타입은 구별된다는 점이며, 상수가 있는 클래스를 사용한 경우와 달리 값의 유형 안전성(type-safe)이 보장된다는 점이다. 열거형은 우리에게 축복인 셈이다. 서로 다른 두 열거형으로 똑같이 비교한다면 컴파일러는 다음과 같은 오류를 발생시킬 것이다.

error CS0019: Operator '==' cannot be applied to operands of type 'HttpStatusCode' and 'ImageWidths'

아주 좋다! 열거형은 컴파일하는 동안 서로 다른 타입을 비교하지 못하게 막아 우리의 시간을 아껴준다. 열거형을 이용해 클래스와 같이 값을 저장할 뿐만 아니라 그 의도도 전달할 수 있다. 또한, 열거형은 값 타입으로 정수 값을 전달하는 것만큼 속도도 빠르다.

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