[C# 객체지향] 타입 유형 확장6_열거형(enum)

eunjin lee·2022년 7월 12일
0

C# 9.0 프로그래밍

목록 보기
14/50

열거형은 값 형식의 하나로 숫자형 타입을 상속받아 정의할 수 있는 제한된 사용자 정의 타입이다.


  1. 활용
  • [접근_제한자] enum 타입명

✍ 샘플 코드

    class Program
    {
        static void Main(string[] args)
        {
            Days today = Days.Sunday;
            Console.WriteLine(today);
        }
    }

    enum Days
    {
        Sunday, Monday, Tuesday, WednesDay, Thursday, Friday, Saturday
    }

✅ 결과

Sunday

  1. 상속
  • enum은 System.Object을 상속 받아 ToString 메서드를 재정의하여, 문자열을 반환하도록 한다.

  1. 형 변환
  • 숫자형 타입과 형 변환이 가능하며, 반드시 명시적 형 변환을 해야 한다.

✍ 샘플 코드

    class Program
    {
        static void Main(string[] args)
        {
            int index = 0;
            while (index<10)
            {
                Console.WriteLine((Days)(index%7));
                index++;
            }
        }
    }

    enum Days
    {
        Sunday, Monday, Tuesday, WednesDay, Thursday, Friday, Saturday
    }

✅ 결과

Sunday
Monday
Tuesday
WednesDay
Thursday
Friday
Saturday
Sunday
Monday
Tuesday

  1. [Flags] 특성
  • enum 타입의 인스턴스가 여러 개의 값을 포함하는 용도로 사용된다는 것을 알리기 위해 지정한다.

✍ 샘플 코드

    class Program
    {
        static void Main(string[] args)
        {
            Days weekend = Days.Saturday | Days.Sunday;
            Console.WriteLine(weekend.HasFlag(Days.Monday));
            Console.WriteLine(weekend.HasFlag(Days.Sunday));

            Console.WriteLine(weekend);
            // [Flags] 특성이 없으면 65로 출력됨. 
        }
    }

    [Flags]
    enum Days
    {
        Sunday = 1, 
        Monday = 2, 
        Tuesday = 4, 
        WednesDay = 8, 
        Thursday = 16, 
        Friday = 32, 
        Saturday = 64 
    }

✅ 결과

False
True
Sunday, Saturday

0개의 댓글