How to 08.08.2017, 11:48 Uhr

Schlaue Enums in C#

In Java sind Enums vollwertige Klassen. Das konnte man in C# bislang zwar nachbilden, die resultierenden Enums aber nicht mit dem Switch-Statement nutzen, so Entwickler robsosno auf Codeproject. Mit C# 7 wird das anders. Er zeigt, wie man schlaue Enums anlegt und nutzt.
Mit C# 7.0 kann man Standardklassen anstelle von Enums nutzen und erhält somit eine größere Flexibilität. Die Grundidee von robsosno ist es, Enum in eine immutable Klasse zu ändern und statische, readonliy Instanzen dieser Klasse bereitzustellen. Den größten Teil seines Codes packt er dafür in die Klasse EnumBase. Alle seine Enums erben von dieser Basisklasse. Die Basisklasse geht davon aus, dass die internen Werte von Enums den Typ Integer haben. Die Klasse unterstützt jedoch auch eine Beschreibung der Werte.

Als Beispiel präsentiert er eine Enum-Klasse TransactionState, die neben den üblichen Werten, hier
  • COMPLETE
  • REJECTED
  • PENDING
  • AWAITING_APPROVAL

auch noch die Methode isTransactionComplete kennt.

Wie er diese selbstgebaute Enum-Klasse in in einem übersichtlichen Switch-Konstrukt nutzt, sehen Sie in seinem Beitrag zum Thema.


Das könnte Sie auch interessieren