무효 클릭 IP 추적 중...
c#

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

꼬예 2022. 5. 16.

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

 

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

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

 

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

 

enum의 자동완성 기능

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

 

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

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

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

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

 

 

switch 구문과 사용

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

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

 

 

직접 enum 객체 만들어보기

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

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

 

 

인덱스(index) 번호로 접근

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

 

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

 

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

output :

0

 

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

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

 

 

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

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

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

 

output :

 

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

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

 

output :

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

 

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

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

 

output :

 

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

댓글