C#을 주조하는 것은 당신이 그런C# 정수가 아닌 열거하고
public enum Animals
{
Dog = 0, Cat = 1,
}
로 열거 요소에 값을 할당하고 너무 그래서 같은 그들로부터 캐스트 할 수 있습니다.
public void demo()
{
int dog = (int)Animals.Dog;
Animals cat = (Animals)(dog++);
}
는하지만 C#을 또한 다시 밖으로 던지기와 Vector2를 얻을 수 없다 그러나이
public enum Animals
{
Dog = Vector2.One, Cat = Vector2.Zero,
}
등의 작업을 수행 할 수 있습니다.
Vector2 dog = (Vector2)Animals.Dog; //this fails
이 문제가 해결 가능합니까? * Vector2
은 클래스 객체이고 Vector2.One
및 Vector2.Zero
은 정적 선언입니다. Dog가 메모리 참조에 지정되었음을 의미합니다. 필수 유형 Vector2
에서 암시 적 캐스트가있는 경우
이 코드는 컴파일되지 않습니다. 'Vector2'는 int로 변환 가능해야합니다 (또는 정수 유형 인 enum의 다른 허용되는 기본 유형을 지정하는 경우) – BrokenGlass
Vector2는 클래스가 아니며 구조체이며 값 유형 (사용자가 자신의 구현이 아닌 XNA Vector2를 사용한다고 가정). – smelch
@BrokenGlass 흠, 내 Kreskin 모자 (http://www.amazingkreskin.com/)도 청소부에 있습니다! ;-) –