https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/enum

 

열거형 형식 - C# reference

선택 또는 선택의 조합을 나타내는 C# 열거형에 대해 알아봅니다

learn.microsoft.com

 

class 키워드 대신 enum 키워드와 함께 정의할 수 있다.

enum과 final, abstract 키워드를 함께 사용하면 컴파일 에러가 난다.

enum은 암시적으로 final을 의미하기 때문이고, enum은 상속받거나 상속 할 수 없기 때문이다.

https://velog.io/@maigumi/Enum

 

열거형 Enum

자바 enum

velog.io

 

 

값에는 종류가 있고

종류에 따라 사용하는 키워드가 다름

 

미리 정의되어 있는 키워드 이외

사용자가 직접 타입을 만들 수도 있다.

 

상수들을 묶어 열거형이라는 이름으로

사용자 정의 타입을 만들어 보자

 

열거형은 상수들의 집합

 

열거형을 정의하려면 enum 키워드를 정의하고

열거형 멤버의 이름을 지정

 

https://www.youtube.com/watch?v=vixfkrzmK3E&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=12

 

기본적으로 열거형 멤버의 연결된 상수 값은 int형식

 

0으로 시작하고 정의된 텍스트 순서에 따라 1씩 증가

 

Spring <------------ 0

Summer <--------- 1 

등등..

 

연결된 상수 값을 명시적으로 지정할 수 있다.

 

https://www.youtube.com/watch?v=vixfkrzmK3E&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=12

 

열거 형식을 정의한다는 것은

새로운 타입 정의를 의미

 

변수 정의와 헷갈리면 안된다.

 

열거 형식 정의는 class 내부 또는

namespace내부에서 하자

 

열거형식 변수 정의

Season season;

 

열거형식 변수에 값 할당

season = Season.Spring;

 

열거 형식 변수값 출력

Console.WriteLine(season);

 

열거형 변수의 값은 할당된 열거형 멤버이름으로 출력된다.

 

namespace Step13
{
    internal class Program
    {
        enum Season //의미 있는 이름이면 좋다. => 열거형 Season 정의
        {
            Spring, // => Season.Spring = 0
            Summer, // => Season.Summer = 1
            Autumn, // 즉 1씩 증가하는데 명시적으로 값을 할당 가능
            Winter = 10 // 맨뒤에 ;(세미클론)을 붙이면 오류
        }
        static void Main(string[] args)
        {
            //enum Season 변수 선언
            Season season;
            //변수 명 앞에는 타입
            //열거형 Season 타입의 변수 season

            season = Season.Spring; //.을 찍으면 정의한 상수 맴버들이 나온다.
            season = Season.Winter; // 방향키를 통해 맴버들을 선택 가능
            Console.WriteLine(season); // Winter => 출력 값은 정수 값이 아니라 상수 맴버 이름

            //변수의 메모리 장소에 새로운 값이 할당되었기 때문에 출력이 바뀜
            

        }
    }
}

'Study > C#' 카테고리의 다른 글

[C#] 문자열 보간  (0) 2024.05.25
[C#] 형식 변환  (0) 2024.05.25
[C#] 상수  (0) 2024.05.25
[C#] Var 키워드  (0) 2024.05.25
[C#] 오류와 디버깅  (0) 2024.05.24

+ Recent posts