Enum
걸리고 uint
캐스팅 함수를 쓰고 있어요. int
으로 전송할 때 보았던 것부터 먼저 객체에 캐스팅해야합니다 ((int) (object) myEnumValue
). (int) myEnumValue
을 쓰면 컴파일 타임 예외가 발생합니다.열거 형 변환 캐스팅
자, 제가 이것을 uint로 캐스팅하려고했을 때, 나는 (uint) (object) myEnumValue
이 괜찮을 것이라고 기대하고있었습니다. 멋지게 컴파일되지만 실행하면 InvalidCastException
이 생성됩니다. 그래서 그것을 사용하려면, 내가 사용했습니다
(uint) (int) (object) myEnumValue
나는 재미 있다고 생각합니다. 그래서 저는 그렇게 행복합니까?
는 어쩌면uint
에
object
을 캐스팅 할 수없는 이유를 물어 더 정확했을 것이다, 그러나 나는
Enum
uint
까지 갈 수있는 또 다른 방법이 있는지에 관심이 있어요. 거기 있니?
편집 :
컨텍스트 함수,이 같은 것입니다 :
public static uint ToUInt (Enum e)
{
return (uint) (int) (object) e;
}
편집 2 :
가장 좋은 해결책은 thecoop 언급 한대로 :
은Convert.ToUInt32(e)
자, Enum : Enint로 Enum을 지정하면 다른 방법일까요? –
@ Jonatan : 예, 열거 형으로 열거 형 상자가되며 uint로 unbox해야합니다. –
맞습니다. (uint) e는 괜찮지 만, (int) e는 폭발 할 것입니다. –