0Pricing
C# Academy · Lektion

Enums und [Flags]

Definieren Sie Enums mit expliziten Werten und zugrunde liegenden Typen, konvertieren und parsen Sie sie sicher und modellieren Sie kombinierbare Optionen mit [Flags].

Enums und [Flags] ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Überblick über Enums

Ziel: Verwenden Sie Enums für benannte Konstanten und [Flags] für kombinierbare Optionen.

  • Namen werden Zahlen zugeordnet
  • Basistyp (standardmäßig int)
  • Umwandeln, parsen und validieren
  • Bitweise Kombination mit [Flags]

Einfaches Enum

Enums sind benannte Konstanten. Sie können den Namen ausgeben oder in die zugrunde liegende Zahl umwandeln.

using System;

public enum OrderStatus
{
  Pending = 0,
  Processing = 1,
  Shipped = 2,
  Delivered = 3,
  Cancelled = 4
}

public class Program
{
  public static void Main(string[] args)
  {
    OrderStatus s = OrderStatus.Processing;
    Console.WriteLine("Status = " + s);
    Console.WriteLine("Numeric = " + (int)s);
  }
}

Zugrunde liegender Typ und Umwandlung

Sie können einen zugrunde liegenden Typ auswählen (short, byte usw.). Das Umwandeln von Zahlen prüft den Wert nicht.

using System;

// Choose underlying type if needed (default is int)
public enum HttpCode : short
{
  Ok = 200,
  NotFound = 404
}

public class Program
{
  public static void Main(string[] args)
  {
    short code = (short)HttpCode.Ok; // cast to number
    HttpCode fromNum = (HttpCode)404; // cast from number (no validation)
    Console.WriteLine("code=" + code);
    Console.WriteLine("fromNum=" + fromNum);
  }
}

Parsen und Validieren

Verwenden Sie Enum.TryParse, um Text einzulesen, und Enum.IsDefined, um numerische Werte zu validieren.

using System;

public enum Color
{
  Red = 1, Green = 2, Blue = 3
}

public class Program
{
  public static void Main(string[] args)
  {
    Color c;
    bool ok = Enum.TryParse<Color>("green", true, out c); // ignore case
    Console.WriteLine("Parsed? " + ok + " value=" + c);

    // Validate a numeric value before casting
    int raw = 4;
    bool valid = Enum.IsDefined(typeof(Color), raw);
    Console.WriteLine("Is 4 a defined Color? " + valid);
  }
}

[Flags] in der Praxis

Fügen Sie [Flags] hinzu und weisen Sie Zweierpotenzen zu. Kombinieren Sie sie mit |, prüfen Sie sie mit & und entfernen Sie sie mit ~ und &.

using System;

[Flags]
public enum FileAccessMode
{
  None  = 0,
  Read  = 1,   // 0001
  Write = 2,   // 0010
  Exec  = 4    // 0100
}

public class Program
{
  public static void Main(string[] args)
  {
    FileAccessMode m = FileAccessMode.Read | FileAccessMode.Write; // combine
    Console.WriteLine("Mode = " + m); // prints "Read, Write"

    // Test a flag (two common patterns)
    bool canWrite = (m & FileAccessMode.Write) != 0;
    Console.WriteLine("Can write? " + canWrite);

    // Remove a flag
    m = m & ~FileAccessMode.Write;
    Console.WriteLine("After remove: " + m);
  }
}

Tipps zu Enums

Tipps:

  • Vergeben Sie explizite Werte und halten Sie diese stabil.
  • Verwenden Sie für [Flags] Zweierpotenzen und fügen Sie ein None = 0 hinzu.
  • Validieren Sie Eingaben mit Enum.TryParse/IsDefined.
  • Vermeiden Sie rohe Ganzzahlen in öffentlichen APIs und bevorzugen Sie Enums.

Bedeutung des Flags-Attributs

Kurze Frage: Welches Attribut ermöglicht es, dass ein Enum kombinierbare bitweise Optionen wie Read | Write darstellen kann?

Zusammenfassung

Zusammenfassung: Verwenden Sie Enums für klare, typsichere Konstanten. Parsen und validieren Sie sicher. Für kombinierbare Optionen fügen Sie [Flags] hinzu und verwenden bitweise Operatoren, um Flags zu setzen, zu prüfen und zu entfernen.

Häufig gestellte Fragen

Ist die Lektion „Enums und [Flags]“ kostenlos?

Ja — der vollständige Text von „Enums und [Flags]“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Enums und [Flags]“?

Definieren Sie Enums mit expliziten Werten und zugrunde liegenden Typen, konvertieren und parsen Sie sie sicher und modellieren Sie kombinierbare Optionen mit [Flags]. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Enums und [Flags]“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Structs: Wertsemantik und Muster für Unveränderlichkeit
  2. Record-ähnliche Typen und wertbasierte Gleichheit (Muster)
  3. Enums und [Flags]
← Zurück zu C# Academy