English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In C#, die enum (枚举类型) dient dazu, Konstantenamen einer Gruppe von ganzzahligen Integer-Werten zuzuweisen. Sie macht Konstantenwerte lesbarer, z.B. ist die Lesbarkeit von WeekDays.Monday beim Bezug auf einen bestimmten Tag der Woche lesbarer als die Zahl 0.
Enumerationen werden direkt mit dem enum Schlüsselwort in einem Namensraum, einer Klasse oder einer Struktur definiert. Alle Konstantennamen können innerhalb der Klammern deklariert und durch Kommas getrennt werden. Nachfolgend wird die Enumeration der Arbeitstage definiert.
enum WeekDays { Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag }
Oben, die Enumeration WeekDays wird in jeder Zeile deklariert, und die Elemente werden durch Kommas getrennt.
Falls kein Wert einem Enumerationselement zugewiesen wird, wird der Compiler standardmäßig jedem Element einen Integerwert (ab null beginnend) zuweisen.1.
enum WeekDays { Montag, // 0 Dienstag, // 1 Mittwoch, // 2 Donnerstag, // 3 Freitag, // 4 Samstag, // 5 Sonntag // 6 }
Man kann jedem Enumerationselement verschiedene Werte zuweisen. Ändert man den Standardwert eines Enumerationselements, werden die Werte automatisch in aufsteigender Reihenfolge auf die anderen Elemente verteilt.
enum Categories { Electronics, // 0 Food, // 1 Automotive = 6, // 6 Arts, // 7 BeautyCare, // 8 Fashion // 9 }
Man kann sogar jedem Element verschiedene Werte zuweisen.
enum Categories { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15, WomanFashion = 15 }
Enumerationen können beliebige numerische Datentypen sein, z.B. byte, sbyte, short, ushort, int, uint, long oder ulong. Enumerationen können jedoch nicht vom Typ String sein.
Geben Sie nach dem Enumeration Namen den Typ als :type an. Nachfolgend wird eine Byte Enumeration definiert.
enum Categories: byte { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15 }
Man kann Punktsyntax verwenden: enum.member, um Enumerationen anzugreifen
enum WeekDays { Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag } Console.WriteLine(WeekDays.Monday); // Montag Console.WriteLine(WeekDays.Tuesday); // Dienstag Console.WriteLine(WeekDays.Wednesday); // Mittwoch Console.WriteLine(WeekDays.Thursday); // Donnerstag Console.WriteLine(WeekDays.Friday); // Freitag Console.WriteLine(WeekDays.Saturday); // Samstag Console.WriteLine(WeekDays.Sunday); // Sonntag
Die Konvertierung von Enumerationstypen in ihre zugrunde liegenden Integer-Typen erfordert eine explizite强制转换.
enum WeekDays { Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag } Console.WriteLine(WeekDays.Friday); //Ausgabe: Freitag int day = (int) WeekDays.Friday; // Umwandlung von Enumeration in int Console.WriteLine(day); //Ausgabe:4 var wd = (WeekDays) 5; // Umwandlung von int in Enumeration Console.WriteLine(wd);//Ausgabe: Samstag
enum ist eine abstrakte Klasse.