C#의 Enum에서 Int 값을 얻는 방법
이 자습서에서는 C#의enum
에서int
값을 가져 오는 방법을 설명하고 C#의 열거 유형에 대한 개요를 수집하기 위해 몇 가지 일반적인 코드 예제를 나열합니다.
enum
은 사용자 정의 데이터 유형 또는 일반적으로 기본 정수 유형의 상수 명명 된 값 집합을 정의하는 값 유형입니다. enum
키워드는 코드 내에서 열거 형을 정의합니다. 기본 예는 다음과 같습니다.
enum Name { Joe, Rick, John, Matt }
사전 정의 된 상수 값의 열거 유형은 기본적으로 int
데이터 유형입니다. 그러나 기본 정수 유형은sbyte
,byte
,short
,ushort
,int
,uint
,long
및ulong
과 같은 다른 정수 숫자 유형으로 명시 적으로 설정할 수 있습니다. 아래 표에서는 C#에서 미리 정의 된 각 정수 유형의 크기와 범위를 설명합니다.
C# 키워드 | 정수 크기 | 범위 |
---|---|---|
sbyte |
서명 된 8 비트 |
[-128, 127] |
byte |
부호없는 8 비트 |
[0, 255] |
short |
서명 된 16 비트 |
[-32,768, 32,767] |
ushort |
부호없는 16 비트 |
[0, 65,535] |
int |
서명 된 32 비트 |
[-2,147,483,648, 2,147,483,647] |
uint |
부호없는 32 비트 |
[0, 4,294,967,295] |
long |
서명 된 64 비트 |
[-9,223,372,036,854,775,808, 9,223,372,036,854,775,807] |
ulong |
부호없는 64 비트 |
[0, 18,446,744,073,709,551,615] |
enum
을int
로 변환하려면 Cast 입력
enum
에서int
값을 가져 오는 것은 데이터 유형에 문제가있는 것만 큼 일반적이지 않습니다. 다음 예를 참조하십시오.
public enum Days { Numbers = 20, DayType = 3 }
int abc = (int)Days.Numbers;
Console.WriteLine(abc);
출력:
20
프로그래머에게는 약간 까다로울 수있는enum
에 대한 다양한 기본 유형이있을 수 있습니다. 위 코드는Days
enum
의int
값을abc
에 저장합니다. 이 경우 Typecasting 방법을 사용하여 엔티티의 데이터 유형을 다른 데이터 유형으로 변경하여 변수를 올바르게 사용합니다. 그러나 형변환을 사용하는 것은 항상 선호되는 것은 아닙니다.
Typecasting에 대한 종속성이없고 매우 간단 할 수있는 방법이 있습니다. 이러한 방법은 아래 코드 예제와 함께 자세히 설명됩니다.
enum
을int
로 변환 할static
클래스
using System;
class Demo {
public static class Subjects {
public const int maths = 2;
public const int science = 3;
public const int english = 4;
public const int history = 5;
}
public static void Main() {
int xyz = Subjects.science;
Console.WriteLine(xyz);
}
}
출력:
3
위의 코드는Subjects.science
가 올바른 정수 값을 타입 캐스팅 할 생각없이3
의 올바른 값을 얻는 것을 보여줍니다.
GetTypeCode()
를 사용하여enum
을int
로 변환
using System;
class Demo {
public enum Subjects { maths, science, english, history }
public static void Main() {
Subjects Maths = Subjects.maths;
Object sub = Convert.GetTypeCode(Maths);
Console.WriteLine(sub);
}
}
출력:
Int32
어떤 프로그래머라도static const
를 사용하지 않으려면 위의GetTypeCode()
메서드를 사용할 수 있습니다. 위의 모든 코드는 열거 형 유형에서 정수를 성공적으로 추출합니다. 아래의 예는 더 많은 아이디어를 얻는 데 도움이 될 것입니다.
더 많은 예
예 1:
using System;
class Demo {
public enum Positions { Role = 2, Project = 3, Jobs = 4 }
public static void Main() {
int a = (int)Positions.Jobs;
Console.WriteLine(a);
}
}
출력:
4
예 2:
using System;
class Demo {
public enum Galaxy : long { Sun = 1, S5HVS1 = 2, HD140283 = 2147977653 }
;
public static void Main() {
long solar = (long)Galaxy.HD140283;
Console.WriteLine(solar);
}
}
출력:
2147977653