Gibt es eine Möglichkeit, unäre Operatoren für Enum-Typen zu implementieren? [Duplikat]

8

Ich habe folgendes:

%Vor%

und ich möchte das verwenden! Operator wie folgt:

%Vor%

(es ist ein Enum)

Ich habe es versucht:

%Vor%

... aber ich erhalte einen Fehler:

  

Der Parametertyp dieses unären Operators muss der umgebende Typ sein

Irgendwelche Ideen?

    
Stickly 18.10.2013, 19:53
quelle

5 Antworten

8

Nein, Sie können keine Methoden oder Operatoren für enum s implementieren. Sie können eine Erweiterungsmethode erstellen:

%Vor%

Verwenden Sie wie:

%Vor%

Oder Sie können eine enum -like class anstelle einer tatsächlichen enum verwenden.

    
Tim S. 18.10.2013, 20:02
quelle
0

Sie könnten so etwas tun:

%Vor%

und umgekehrt, wenn Sie möchten.

Oder benutze einen Bool, wie Guthwulf sagte.

    
user1567896 18.10.2013 20:00
quelle
0

Theoretisch könnte dies mit Erweiterungsmethoden möglich sein, aber unglücklicherweise hat sich MS entschieden, diese Funktion nicht zu implementieren:

Ссылка

Also ist es entweder boolesch, wenn Sie nur up / down haben, oder einige Methoden IsUp (), IsDown (), ....

    
Ondra 18.10.2013 20:07
quelle
0

Nicht wirklich eine Antwort, aber es funktioniert:

enum MovingDirection : byte { Up = 255, Down = 0 };

%Vor%     
Ilya Bursov 18.10.2013 20:27
quelle
0

Sie können numerische oder bitweise Operationen für den Aufzählungswert ausführen, da enums Ints sind.

Hinweis : Das ist nicht unbedingt eine gute Idee. Vielleicht nicht einmal gut. Aber zeigt eine andere Möglichkeit, an Enums zu denken.

%Vor%

edit: um die enum und ihre int Werte anzuzeigen

%Vor%     
bland 18.10.2013 20:14
quelle

Tags und Links