Aufzählungstypen und Erweiterungsmethoden (Teil 4)
Kommentare

Typkonverter – kurz und knapp
Wenn Sie auf einen Wert von einem Aufzählungstyp zugreifen, müssen Sie ihn meistens erst einmal in einen elementaren Typ (in der Regel eine Ganzzahl) umwandeln, um ihn

Typkonverter – kurz und knapp

Wenn Sie auf einen Wert von einem Aufzählungstyp zugreifen, müssen Sie ihn meistens erst einmal in einen elementaren Typ (in der Regel eine Ganzzahl) umwandeln, um ihn verarbeiten zu können. Die Übersetzung vom Aufzählungstyp in den nativen Typ wird über die Dienste des Members Enum.Parse realisiert. Dennoch müssen Sie noch einige Codezeilen hinzufügen. Deshalb lohnt es sich, eine neue Erweiterungsmethode wie zum Beispiel As zu definieren (Listing 4).

Listing 4

public static T As(this Enum val)
{
    // Get the type of the underlying enumeration.
       var enumType = val.GetType();

    // Parse the value into the native type. 
    var enumValue = Enum.Parse(enumType, val.ToString());

    // Explicitly cast to the expected type and return.
    return (T) enumValue;
}  

Wie Sie von der Methode As profitieren, zeigt das folgende Beispiel, das einen der Werte in der Aufzählung MatchStatus in eine Ganzzahl umwandelt:

var status = MatchStatus.Completed; Console.WriteLine(status.As());

Auch die folgende Methode ist in der Praxis hilfreich:

public static T Parse(this String name) where T:struct {    return (T) Enum.Parse(typeof(T), name); }

Diese Hilfsmethode bietet sich an, wenn Sie eine benannte Konstante aus einer Aufzählung erhalten und den nativen Typ zurückhaben möchten. Handelt es sich bei der Eingabe um einen Aufzählungswert, nehmen Sie stattdessen die Methode As. Die Methode Parse verwenden Sie folgendermaßen:

var value = "Completed".Parse();
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -