2017-07-03 9 views
1

Ich mache einfache Virtual Machine. Ich habe einen Enum-Typ namens Instructions.Array von Enums mit Ganzzahlen

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

In meiner Test-Klasse erstelle ich ein Array von Instructions Enum und ich mag wie unten int in diesem Array verwenden.

Mein Ziel ist alle oben genannten Anweisungen zu lesen und sie zu behandeln. Zum Beispiel sollte der obige Code tun, 2 und 7 auf den Stapel zu schieben, dann fügen Sie sie zusammen und pop top des Stapels.

Es gibt mir Fehler für int Literal, und das ist die Fehlermeldung.

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

Wie kann ich int Literale in meinem Instructions Array?

+0

Was ist 2 und 7? –

+0

Nur zufällige Konstanten für das Hinzufügen von ihnen zusammen. – Stradivarius

+0

Genau wie die Fehlerhinweise müssen Sie die Zahlen umwandeln. Du wirst eine Menge Zeit damit verbringen, all das zu parsen, weil deine "2" auf deine Anweisung die gleiche wie "SUB" ist. – TyCobb

Antwort

1

Da 2 und 7 nicht vom Typ Instructions sind, können Sie sie nicht in das Array Instructions[] einfügen. Sie benötigen stattdessen ein Integer-Array.

+0

Oder werfen Sie sie auf "Anweisungen". –

+0

@KennethK. aber die Besetzung wird auch scheitern ... – imlokesh

+2

Nein wird es nicht. –

Verwandte Themen