Aufzählungstypen und Erweiterungsmethoden (Teil 5)
Kommentare

Wie wäre es schließlich zur Krönung unserer Enum-Erweiterungs-API mit einer direkten GetDescription-Methode, welche lediglich die Klartextzeichenfolge zurückgibt, die einem Aufzählungswert optional

Wie wäre es schließlich zur Krönung unserer Enum-Erweiterungs-API mit einer direkten GetDescription-Methode, welche lediglich die Klartextzeichenfolge zurückgibt, die einem Aufzählungswert optional zugeordnet ist (Listing 5)?

Listing 5

public static String GetDescription(this Enum val)
{
    var field = val.GetType().GetField(val.ToString());
    var attributes = (DescriptionAttribute[])
                      field.GetCustomAttributes(
                          typeof(DescriptionAttribute), 
                          false);
    return attributes.Length > 0 
               ? attributes[0].Description 
               : val.ToString();
}  

Und so verwenden Sie die Methode:

var value = "Completed".Parse();

Wird kein Description-Attribut gefunden, liefert die Methode lediglich die benannte Konstante für den Wert.

Fazit

Erweiterungsmethoden wurden in C# und Visual Basic hauptsächlich deshalb hinzugefügt, um das Programmierbarkeitsniveau von LINQ zu erhöhen. Allerdings erweisen sich Erweiterungsmethoden als äußerst nützlich für den Entwickler, um Bibliotheken von globalen Funktionen zu erstellen, die sich auf einen bestimmten Typ beziehen. Wie der Artikel gezeigt hat, können Sie mit Erweiterungsmethoden die API des Typs System.Enum erweitern und damit zu einer wesentlich saubereren API kommen. Ohne Erweiterungsmethoden müssten Sie Ihre eigene globale Klasse und einen eigenen Satz von statischen Methoden schreiben. Das hat seit Jahren funktioniert und ist auch heute noch praktikabel, doch sind Erweiterungsmethoden die fortschrittlichere Variante.

Dino Esposito ist R&D Director bei Crionet, einer Firma, die sich auf webbasierte und mobile Lösungen für Sportereignisse in ganz Europa spezialisiert hat (http://www.e-tennis.net). Außerdem ist Dino der Autor von „Programming ASP.NET 4“.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -