2013-06-28 6 views
2

C#을 사용하여 안드로이드를 타겟팅하는 dot42 프레임 워크의 사용을 평가 중입니다 ... 그래서 dot42가 수행 할 수있는 것과 수행 할 수없는 것 사이에서 다음과 같은 캐스팅이 작동하지 않습니다. .. Java 표현식 오류가 발생합니다.enum을 int로 변환 할 수 없습니다. dot42

public enum Days { Sat = 1, Sun, Mon } 

Days day = Days.Sun; 
int dayNumber = (int)day; // <----- Throws Error 

이 방법이 있습니까?

감사합니다 ...

+0

Google에서 쉽게 찾을 수있는 간단하고 일반적인 실수입니다 ... –

+0

'int dayNumber = day.ordinal(); ' – Shark

+0

내가 검색했기 때문에 Google에서 쉽게 찾을 수 있다고 생각합니다. 2 일 동안. 서수 메서드가 존재하지 않으며 최신 dot42 프레임 워크가 있습니다. 어쨌든 고맙습니다 ... –

답변

2

버전 1.0.0.70을 사용하고 있습니까?

다음 테스트 코드는 여기에서 정상적으로 실행됩니다.

namespace TestDays 
{ 
    [Activity] 
    public class MainActivity : Activity 
    { 
     protected override void OnCreate(Bundle savedInstance) 
     { 
      base.OnCreate(savedInstance); 
      testDays(); 
      SetContentView(R.Layouts.MainLayout); 
     } 

       public enum Days { Sat = 1, Sun, Mon } 

     public int testDays() 
     { 
      Days day = Days.Sun; 
      int dayNumber = (int)day; // <----- Throws Error 
      return dayNumber; 
     } 

    } 
} 

공개 : 나는 dot42에서 일합니다.

+0

도움을 주셔서 감사합니다 .. 코드가 작동합니다. 이제 방법은 내가 변환을 통해 생략되고 사용되지 않습니다 변수 .. 이 작동하지 않음을 참조하십시오 보호 재정의 무효 한 OnCreate (번들 savedInstance) { 일 일 = Days.Sun ; int dayNumber = (int) day; base.OnCreate (savedInstance); SetContentView (R.Layouts.MainLayout); } .... –

+0

그러나이 수행합니다 보호 재정의 무효 한 OnCreate (번들 savedInstance) { 일 일 = Days.Sun; int dayNumber = (int) day; dayNumber ++; // 변수가있는 표현식 base.OnCreate (savedInstance); SetContentView (R.Layouts.MainLayout); } 이 문제에 대해 알려주는 시간이 있다면. 그게 너 좋을거야. 감사합니다 .. –

관련 문제