Avatar ·

Erstellen einer generischen Methode mit Einschränkung auf Enum in C#

Hallo zusammen! Ich bin ein C#-Anfänger und habe ein Problem mit generischen Methoden. Ich möchte eine universelle Methode schreiben, die eine Enumeration (enum) akzeptiert und etwas Nützliches damit macht, z. B. prüfen, ob der Wert im enum definiert ist, oder ihn in einen String umwandeln. Ich versuche, den Typ T einzuschränken, sodass es genau ein enum ist, aber der Compiler meckert. Hier ist mein Code: ```csharp public static T ParseEnum(string value) where T : Enum { return (T)Enum.Parse(typeof(T), value); } ``` Der Compiler gibt einen Fehler aus: "Constraint cannot be special class 'System.Enum'". Ich habe gelesen, dass man in C# Enum nicht direkt in Generic-Einschränkungen verwenden kann. Wie erstellt man dann korrekt eine generische Methode, die nur mit enums funktioniert? Muss ich where T : struct verwenden und intern prüfen? Oder gibt es einen anderen Weg? Ich möchte Code-Duplizierung für jedes enum im Projekt vermeiden. Ich wäre dankbar für Beispiele und Erklärungen. Danke! <<>>

Problem und Lösung

Sie sto