C#에서의 열거형 정의 및 활용 방법

C# 언어에서 데이터를 처리할 때 기본 자료형을 넘어 복잡한 구조를 표현해야 하는 경우가 많습니다. 이럴 때 사용되는 것이 바로 열거형(enum)입니다.

열거형은 특정 값 집합을 가지는 변수를 표현하기 위해 설계된 사용자 정의 자료형으로, 값 형식(Value Type)에 해당합니다. 각 멤버는 논리적으로 연결된 이름이 붙은 정수 상수로 구성됩니다.

열거형 정의 시 다음 구문을 사용합니다:

[접근제어어] enum 열거형명 {
    멤버1, 멤버2, ...
}

예를 들어 주간 요일을 표현하는 열거형은 다음과 같이 정의할 수 있습니다:

public enum WeekDay {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

열거형 사용 예시:

WeekDay today = WeekDay.MONDAY;
if (today == WeekDay.SATURDAY || today == WeekDay.SUNDAY) {
    Console.WriteLine("휴무일");
} else {
    Console.WriteLine("근무일");
}

열거형과 정수 간 변환은 명시적 형변환을 통해 이루어집니다:

WeekDay today = WeekDay.MONDAY;
int value = (int)today; // 1 반환

today = (WeekDay)5; // FRIDAY 반환
today++; // SATURDAY로 증가

열거형 멤버의 정수값을 직접 지정할 수 있습니다:

public enum DayOfWeek {
    SUNDAY = 6, MONDAY, TUESDAY, WEDNESDAY = 2, THURSDAY, FRIDAY, SATURDAY
}

문자열과 열거형 간 변환은 Enum.Parse 메서드를 사용합니다:

Console.WriteLine("오늘은? : ");
string input = Console.ReadLine();
WeekDay today = (WeekDay)Enum.Parse(typeof(WeekDay), input);

WeekDay tomorrow;
if (today == WeekDay.SATURDAY) {
    tomorrow = WeekDay.SUNDAY;
} else {
    tomorrow = today + 1;
}
Console.WriteLine("내일은: " + tomorrow);
using System;

namespace EnumExample {
    public enum WeekDay {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
    }

    class Program {
        static void Main(string[] args) {
            WeekDay today = WeekDay.MONDAY;
            if (today == WeekDay.SATURDAY || today == WeekDay.SUNDAY) {
                Console.WriteLine("휴무일");
            } else {
                Console.WriteLine("근무일");
            }
            
            int value = (int)today;
            Console.WriteLine($"현재 요일 코드: {value}");
            
            today = (WeekDay)5;
            Console.WriteLine($"5번 코드는: {today}");
            
            today++;
            Console.WriteLine($"증가 후 요일: {today}");
        }
    }
}
using System;

namespace EnumParseExample {
    public enum DayOfWeek {
        SUNDAY = 6, MONDAY, TUESDAY, WEDNESDAY = 2, THURSDAY, FRIDAY, SATURDAY
    }

    class Program {
        static void Main(string[] args) {
            Console.WriteLine("오늘은? : ");
            string input = Console.ReadLine();
            
            DayOfWeek today = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), input);
            DayOfWeek tomorrow;
            
            if (today == DayOfWeek.SATURDAY) {
                tomorrow = DayOfWeek.SUNDAY;
            } else {
                tomorrow = today + 1;
            }
            
            Console.WriteLine($"내일은: {tomorrow}");
        }
    }
}

태그: csharp Enum DataTypes TypeConversion ProgrammingConcepts

6월 25일 21:41에 게시됨