무효 클릭 IP 추적 중...
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
c#

[c#] enum(열거형) 사용 이유/사용법

꼬예 2022. 5. 16.
[c#] enum(열거형) 사용 이유/사용법

enum이란 여러개의 상수를 하나의 컨테이너에서 관리하기 위해 사용하는 자료형입니다.

 

그런데 왜 굳이 하나로 관리할까요?

우리가 관리해야할, 또는 기억해야 할것들이 많다면 우리 머리로 일일이 기억하기 어렵기 때문입니다.

 

enum을 쓰면 왜 기억하기 쉬울까요?

 

enum의 자동완성 기능

바로 자동 완성 기능 때문인데요.

 

c#의 빌트인 enum중 하나인 ConsoleColor를 예로 들어 설명해보겠습니다.

(ConsoleColor콘솔창에 컬러를 바꾸는 역할을 함)

[c#] enum(열거형) 사용 이유/사용법 - enum의 자동완성 기능

보시는 것처럼 .(점)을 하나찍으면 해당 enum에 포함된 모든 컬러가 노출이 됩니다. 

우리는 마치 주관식이 아닌 객관식 문제풀듯 내용물에 접근할 수 있게 되는거죠.

 

 

switch 구문과 사용

이외에도 스위치 구문 인자로 enum을 넣으면 해당 모든 항목들을 기준으로 조건문이 만들어집니다.

[c#] enum(열거형) 사용 이유/사용법 - switch 구문과 사용

위 예시를 보시면 앞서 소개해드렸던 ConsoleColor 빌트인 enum을 인자로 넣고 엔터를 누르면 해당 enum에 들어있는 항목들이 모두 노출 되고 각 항목들이 조건문으로 사용되는걸 볼 수 있습니다. 

 

 

직접 enum 객체 만들어보기

enum이라는 명칭으로 중괄호와 함께 요소들을 넣어주면 됩니다. 

[c#] enum(열거형) 사용 이유/사용법 - 직접 enum 객체 만들어보기

마찬가지로 .(점)을 찍으면 해당 enum객체의 내용물이 보이게 되죠.

 

 

인덱스(index) 번호로 접근

enum객체 내부의 각 요소들을 기본적으로 인덱스번호를 가지고 있습니다. 

 

인덱스번호의 접근하는 방법은  아래와 같이 (int)타입캐스팅을 적용해주면됩니다. 

 

[c#] enum(열거형) 사용 이유/사용법 - 인덱스(index) 번호로 접근

그러면 해당 요소의 인덱스 번호가 노출이 됩니다.

output :

0

 

각 요소들은 디폴트로 0, 1, 2 식으로 +1 씩 커지는 구성입니다. 

그렇기 때문에 첫번째 요소인 김치찌개는 0이 되겠죠.

 

 

디폴트 인덱스(index) 번호 변경

반면 이 디폴트 값을 변경할 수도 있습니다. 

각 요소에 임의의 값을 넣어주는것이죠.

[c#] enum(열거형) 사용 이유/사용법 - 디폴트 인덱스(index) 번호 변경

 

output :

[c#] enum(열거형) 사용 이유/사용법 - 디폴트 인덱스(index) 번호 변경

 

하지만 기본적으로 인덱스번호는 1씩 커지기 때문에 굳이 위처럼 다 안적어도 되긴합니다. 

아래와 같이 하나만 지정해줘도 알아서 1씩 증가시켜 인식하기 때문입니다.

[c#] enum(열거형) 사용 이유/사용법 - 디폴트 인덱스(index) 번호 변경
[c#] enum(열거형) 사용 이유/사용법 - 디폴트 인덱스(index) 번호 변경

 

output :

[c#] enum(열거형) 사용 이유/사용법 - 디폴트 인덱스(index) 번호 변경

-1 부터 시작했으니 밥의 인덱스번호는 1이 됩니다.

 

enum 요소를 문자형으로 보기(with nameof)

이 외에도 해당 요소를 문자형으로 보고 싶으면 nameof()를 사용하면 됩니다.

[c#] enum(열거형) 사용 이유/사용법 - enum 요소를 문자형으로 보기(with nameof)

 

output :

[c#] enum(열거형) 사용 이유/사용법 - enum 요소를 문자형으로 보기(with nameof)

 

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글