2017-07-03 78 views
1

我正在製作簡單的虛擬機。我有一個名爲Instructions的枚舉類型。帶整數的枚舉數組

public enum Instructions : int { 
    ADD = 1, 
    SUB = 2, 
    PUSH = 3, 
    POP = 4, 
    HALT = 5 
} 

在我的測試類我創建Instructions枚舉的數組,我想使用int該數組中像下面。

Instructions[] code = new Instructions[] { 
    PUSH, 2, 
    PUSH, 7, 
    ADD, 
    POP, 
    HALT 
}; 

我的目標是閱讀上述所有說明並處理它們。例如,上面的代碼應該將2和7推入堆棧,然後將它們一起添加並彈出堆棧頂部。

它給我錯誤int文字,這就是錯誤信息。

Cannot implicity convert 'int' to 'Vm.Instructions'. An explicit conversion exists (are you missing a cast?) 

我如何使用我的Instructions陣列int文字?

+0

什麼是2和7? –

+0

只是將它們加在一起的隨機常量。 – Stradivarius

+0

就像錯誤提示一樣,你必須輸入數字。你將有一段時間試圖解析這些,因爲你的'2'與你的指令中的'SUB'相同。 – TyCobb

回答

1

由於2和7不是Instructions類型,所以不能將它們放在Instructions[]陣列中。你需要一個整數數組。

+0

或將它們投射到'Instructions'。 –

+0

@KennethK。但演員陣容也會失敗...... – imlokesh

+2

不,不會。 –