Ein Aufzählungstyp – oder eine Enumeration – ist eine homogene Auflistung von benannten Konstanten des gleichen Typs. Das .NET Framework verlangt als Typ von Aufzählungselementen einen Werttyp und schreibt in der Regel einen numerischen Ganzzahltyp vor. Bei den Datentypen in .NET unterscheidet man Werttypen und Verweistypen. Werttypen werden normalerweise auf dem Stack gespeichert, Verweistypen dem Heap zugeordnet. Letztlich sind beide Typen von der Basisklasse Object abgeleitet. Genau wie Zahlen, Datumswerte, boolesche Werte und andere Typen ist der Typ System.Enum ebenfalls ein Werttyp. Ein Aufzählungstyp wird vor allem mit Ganzzahl- und Zeichentypen erzeugt. Zur Liste gültiger Typen gehören auch byte, sbyte, integer, uinteger, short, ushort, long und ulong. Wenn Sie eine neue Enumeration deklarieren, können Sie optional den Typ der Werte angeben. Wenn Sie in .NET keinen zugrunde liegenden Typen explizit deklarieren, wird Int32 (integer) verwendet.
Die Programmierschnittstelle von .NET-Enum-Typen
Die Deklaration der Klasse System.Enum, der Wurzel aller Aufzählungstypen, sieht folgendermaßen aus:
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible { : }
Eine Enumeration deklarieren Sie wie in Listing 1 zu sehen ist, wobei in diesem Fall der Typ explizit angegeben ist.
Listing 1
public enum MatchStatus : int { ToBePlayed, BeingCurrentlyPlayed, Completed }