Skip to content

Latest commit

 

History

History
110 lines (85 loc) · 2.52 KB

005. 자료형 - 값 형식 - 열거 형식.md

File metadata and controls

110 lines (85 loc) · 2.52 KB

자료형 - 값 형식 - 열거 형식

열거 형식

public enum AnyEnumType
{
    AnyEnumMember1,
    AnyEnumMember2,
    AnyEnumMember3,
}

열거 형식 사용법

AnyEnumType anyEnumType1 = AnyEnumType.AnyEnumMember1;
AnyEnumType anyEnumType2 = AnyEnumType.AnyEnumMember2;
AnyEnumType anyEnumType3 = AnyEnumType.AnyEnumMember3;

Console.WriteLine(anyEnumType1);
Console.WriteLine(anyEnumType2);
Console.WriteLine(anyEnumType3);

// AnyEnumType1
// AnyEnumType2
// AnyEnumType3

열거 형식을 출력하면 자바 기준 Enum.name에 해당하는 열거 형식의 이름이 출력됩니다.

열거 형식의 멤버는 값을 가질 수 있다.

public enum AnyEnumType
{
    AnyEnumMember1 = 1,
    AnyEnumMember2 = 5,
    AnyEnumMember3,
}

이렇게 멤버마다 int 값을 가질 수 있습니다. 값을 지정하지 않을 경우 0부터 1씩 올라가는 값을 가지게 됩니다. 위처럼 중간에 값을 대입하지 않았을 경우 그 전 값의 +1 값을 가지게 됩니다. 따라서 AnyEnumMember36의 값을 가지게 됩니다.

만약에 증가한 값이 이미 있다고 해도 값은 겹치게 됩니다.

열거 형식은 베이스 타입을 가질 수 있다.

public enum AnyEnumType : char
{
    AnyEnumMember1 = 'A',
    AnyEnumMember2 = 'B',
    AnyEnumMember3 = 'C',
}

열거 형식은 위처럼 char로 베이스 타입을 가질 수 있습니다. 아무것도 없을 경우 디폴트로 int를 베이스 타입으로 가지게 됩니다.

열거 형식과 형변환

public enum AnyEnumType
{
    AnyEnumMember1,
    AnyEnumMember2,
    AnyEnumMember3,
}

위처럼 베이스 타입이 int인 열거 형식이 선언되었을 경우, 열거 형식을 int 타입으로 형변환하면 가지고 있는 값으로 변환되며, 반대도 가능합니다.

AnyEnumType anyEnumMember = (AnyEnumType) 1;
Console.WriteLine(anyEnumMember);
// AnyEnumMember2

int enumValue = (int) AnyEnumType.AnyEnumMember3;
Console.WriteLine(enumValue);
// 2

만약에 4라는 값을 가지고 있는 멤버가 여러 개라면 가장 위에 있는 멤버가 선택됩니다.

열거 형식의 메소드

public enum AnyEnumType
{
    AnyEnumMember1,
    AnyEnumMember2,
    AnyEnumMember3,
}
Console.WriteLine(AnyEnumType.AnyEnumMember1.GetType());
Console.WriteLine(AnyEnumType.AnyEnumMember1.GetTypeCode());
Console.WriteLine(AnyEnumType.AnyEnumMember1.ToString());

// AnyEnumType
// Int32
// AnyEnumMember1