2013-06-28 32 views
2

我正在評估使用dot42框架的目標android使用C#.. 所以,當經歷什麼dot42可以和不能做,我被困在下面的鑄造不工作,拋出Java表達式錯誤。不能投ENUM到INT dot42

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

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

有沒有辦法解決這個問題?

謝謝...

+0

這是一個簡單和常見的錯誤,很容易在谷歌上找到... –

+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); } 如果您有時間在這個問題上解決一些問題。那對你很好。 感謝您的幫助.. –