Enums

Enums sind eine Art von Klasse, die eine Gruppe von Konstanten repräsentiert. Anders als Klassen jedoch sind Enums Wertetypen.

enum SeverityLevel 
{
    Low,
    Medium,
    High,
    Critical    
}

Im Hintergrund ist ein Enum einfach ein numerischer Wert, hier hat beispielsweise SeverityLevel.Low den Wert 0.

Werte auslesen

Wir können sowohl den numerischen Wert, als auch den eigentlichen String von einem Enum erhalten.


String zu Enum

Um einen String zu einem Enum-Wert zu konvertieren müssen wir die Methode Enum.Parse() nutzen.

Es gibt auch eine TryParse()-Methode

Flags

Wir können Enums auch als Flags nutzen, das heisst wir können sie mit Bitwise-Operatoren kombinieren.

[Flags]
enum Permissions
{
    None    = 0,
    Read    = 1,
    Write   = 2,
    Execute = 4
}

Diese Flags können wir dann mit dem Pipe-Operator | verbinden.

Permissions readWrite = Persmissions.Read | Permissions.Write;

Um dann zu testen, ob eine Flag gesetzt ist, können wir den AND-Operator & nutzen.

bool canRead = (readWrite & Permissions.Read) == Permissions.Read;
bool canWrite = (readWrite & Permissions.Write) == Permissions.Write;
bool canExecute = (readWrite & Permissions.Execute) == Permissions.Execute;

Zuletzt aktualisiert

War das hilfreich?