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
값을 가지게 됩니다.
따라서 AnyEnumMember3
는 6
의 값을 가지게 됩니다.
만약에 증가한 값이 이미 있다고 해도 값은 겹치게 됩니다.
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