📚
Lerndokumentationen
.NET
.NET
  • Willkommen
  • C#
    • Variablen
      • Strings
      • Integers
      • Floats und Doubles
      • Booleans
      • Casting und Parsing
    • Kontrollstrukturen
      • if-Statements
      • Ternary-Operator
      • Switch-Statements und -Expressions
    • Collections
      • Arrays
      • Lists
      • Dictionaries
    • Loops
      • while-Loops
      • for-Loops
      • foreach-Loops
      • continue und break
    • Methoden
      • Callbacks und Delegates
      • Extension Methods
      • Lazy
    • Objektorientierte Programmierung
      • Fields und Properties
      • Methoden
      • Statisch vs. Instanzen
      • Konstruktoren
      • Vererbung
      • Komposition
      • Generics
      • Tupel
    • Referenz- und Wertetypen
      • Enums
      • Structs
      • Records
    • Binary und Strings
      • Kodierung von Strings und Bytes
      • Streams
      • XML und JSON
  • Design Patterns
    • Creational Patterns
      • Singleton
    • Structural Patterns
      • Decorator Pattern
    • Behavioral Patterns
      • Memento
      • Strategy
Bereitgestellt von GitBook
Auf dieser Seite
  • Werte auslesen
  • String zu Enum
  • Flags
  1. C#
  2. Referenz- und Wertetypen

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

[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;
VorherigeReferenz- und WertetypenNächsteStructs

Zuletzt aktualisiert vor 1 Monat

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

Bitwise-Operatoren