2009-06-10 5 views
3

내 열거 형을 int로 기본값으로 만들 수있는 방법이 있습니까? 그래서 나는 그것을 도처에 형변환 할 필요가 없다? 기본적으로 const 값의 목록으로 사용하고 있습니다.C# enums as int

+0

Dupe? http://stackoverflow.com/questions/577946/can-i-avoid-casting-an-enum-value-when-i-try-to-use-or-return-it – Oskar

+1

Oskar. 일종의하지만 나는 타입 변환을 피하려고 노력하지 않고있다. const int의 추가 구문을 타이핑하는 것이 싫고 [플래그]가 열거 형 동작을 수정할 수 있으므로 비슷한 것을 찾기를 바랍니다. –

답변

7

아니요, 열거 형을 선언 한 경우 기본값은 열거 형이며 int 값을 가져 오려면 명시 적 형변환이 필요합니다. enum을 const 값으로 사용하는 경우 const 값을 사용하지 않는 이유는 무엇입니까? 분리가 필요하다면이 const 값만 포함하는 구조체를 만들 수 있습니다.

8

번호

당신이 정말로 INT 상수의 그룹이 필요한 경우, 정적 클래스 사용 : 당신이 정말로, 당신은 다음과 같은 확장 메서드를 만들 수 그렇게하려면

public static class Constants { 
    public const int ConstantOne = 42; 
    public const int ConstantTwo = 42; 
    ... 
} 
1

을 열거 형에 대한

public static int ToInt(this Enum obj) 
{ 
    return Convert.ToInt32(obj); 
} 

그런 다음 다음과 같은

,911처럼 사용할 수