본문 바로가기

취미로 하는 게임코딩_gameCodingAsHobby/유니티unity로 게임 만들기

유니티28_C#18_Enum 타입

Enumeration(셈, 열거) Type

 

Enumeration 타입은 단어에 있는 num에서 알 수 있듯이 숫자를 매기는 value(값)타입이다.

흔히 'enum(이넘)타입' 또는 '열거형'이라고도 한다.

 

enum타입을 정의하면 enum 멤버의 이름에 보이지 않는 숫자(정수)가 메겨진다.

이 정수는 변하지 않고 읽을 수만 있는 상수(constant)로 정해진다.

 

 

12번줄에서 Season(계절)이라는 이름으로 enum을 정의한다.

14~17번줄에서 enum의 멤버는 쉼표( , )로 구분하여 열거한다.

7번줄에서 enum 멤버에 접근하려면 enum명에 점( . )으로 연결하여 멤버명을 붙인다.

8번줄에서 enum멤버에 메겨진 숫자는 int 타입으로 명시적 타입 변환하여 확인할 수 있다.

 

결과는 다음과 같이 나타난다.

 

 

enum으로 정의하면 Spring이라는 멤버에 정수 0 이 매겨진 것을 확인할 수 있다.

 

 

위와 같이 enum멤버에 다른 수를 할당할 수도 있다.

이 경우 숫자가 지정된 다음 멤버는 1씩 증가하는 수를 가지게 된다.

 

또한 아래와 같이 같은 숫자로 지정할 수도 있다.

 

 

enum멤버에 할당된 정수로 멤버값을 확인하려면 다음과 같이 한다.

 

 

만약 멤버에 할당된 정수가 없는 경우는 숫자가 바로 출력된다.

 

enum의 활용

enum이 어떤 경우에 유용한 지 예를 들어본다.

 

 

string타입의 season이라는 배열을 정의했다고 하자.

이 배열의 요소에 접근하려면 배열의 인덱스(index)를 사용한다.

이 경우 인덱스를 잘못 입력하는 실수를 하기 쉽다.

요소의 수가 많다면 더욱 인덱스를 정확하게 파악하기 힘들것이다. 

 

이런 실수를 줄이기 위해 enum 타입을 활용할 수 있다.

 

 

enum을 정의하면 배열 요소에 접근할 때 인덱스 숫자가 아니라 enum멤버명을 직접 적을 수 있어 실수를 줄일 수 있다.

또한 배열의 일부 값만 사용할 경우 enum 정의에서 사용하지 않을 값을 빼고 입력해 두면 enum을 이용할 때 잘못 적을 가능성을 처음부터 차단하는 효과도 있다.

 

끝.

Wraven...