본문 바로가기

프로그래밍/C#

[C#] enum 열거형을 사용해보자.








 

C# Prog.


처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 <뇌를 자극하는 C# 4.0 프로그래밍>을 참고하였습니다.

 



 enum은 사용자 정의의 데이터의 집합을 의미합니다. enum을 통해서, 형식화된 상수타입의 데이터를 정의할 수 있습니다.

그럼으로써, 잘못된 데이터를 사용하거나 읽을 가능성을 없애주죠. 그리고 값의 중복 가능성을 배제해주기도 합니다. 


 우선,  enum의 선언은 방식은 다음과 같습니다.

enum 열거명[ : 자료형 ]{상수1, 상수2, 상수3 ...}


 한번 테스트 해보겠습니다. 

using System;


namespace Test

{

    class Test

    {

        enum gender { MALE, FEMALE }


        static void Main(string[] args)

        {

            Console.WriteLine((int)gender.MALE);

            Console.WriteLine((int)gender.FEMALE);

        }

    }

}



결과는요?



잘 보시면, 콘솔 화면에 출력을 할 때, int형으로 변환을 했는데요. 그래서 나온 값들이 0, 1 입니다.

-int형으로 변환하지 않았다면, MALE과 FEMALE 이라는 값이 출력되었을 것입니다.

이 값들은 enum 선언시 자동으로 부여된 값인데요. 차례대로 0 에서부터 1씩 증가된 값이 할당됩니다.


 선언할때 자료형을 생략하게 되면, int형이 기본타입으로 지정됩니다. 

그래서 뒤에 선언된 열거형 값들이 0이나 1과 같은 값을 가지게  된 것이죠. 


 원하는 값을 대입해 줄 수도 있는데요. 다음과 같이 사용합니다.


using System;



namespace Test

{

    class Test

    {

        enum gender { MALE =100, FEMALE, TEST_MALE=200, TEST_FEMALE }


        static void Main(string[] args)

        {

            Console.WriteLine((int)gender.MALE);

            Console.WriteLine((int)gender.FEMALE);


            Console.WriteLine((int)gender.TEST_MALE);

            Console.WriteLine((int)gender.TEST_FEMALE);

        }

    }

}



어떤 값들이 출력되었는지 한번 볼까요?



자 , 근데 한가지 특이한 점이 있죠?

그렇습니다. 우리가 설정한 MALE=100 이란 값에서 FEMALE이 1이 증가된 값을 가졌고,

중간에 다시 TEST_MALE =200 을 설정해주자, 다음의 TEST_FEMALE 이 201로 1이 증가되었네요.


 이렇게 함으로써, 내부적으로 중복된 값이 제거가 되는 것이죠. 

다들 함께 코딩해보고 확인해 봅시다~