Kolumne: Dino talks

Aufzählungstypen im Visier
Kommentare

Aufzählungstypen sehen so simpel aus und sind kaum anspruchsvoller als einfache Konstanten, sodass man sich berechtigterweise fragt, wo bei dieser Sache eigentlich der Haken ist. Aufzählungstypen sind recht hilfreich beim Entwurf eines Objektmodells, um eine Gruppe von verwandten Werten mit einer besonderen Bedeutung zu kennzeichnen. Diese Werte werden normalerweise in einer Tabelle als einfache Werte gespeichert, müssen aber als Werte eines anderen Typs – der Enumeration – zurückgelesen werden. Hierfür ist etwas Arbeit erforderlich. Ähnlich sieht es aus, wenn Sie die Bedeutung der als Zahlen vorliegenden Aufzählungswerte in der Benutzeroberfläche mit einer Zeichenfolge anzeigen möchten. Dieser Artikel reißt das Thema der Aufzählungstypen lediglich an und diskutiert Lösungen.

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 
}  
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -