Avatar ·

Cómo crear un método generic con restricción T a Enum en C#?

¡Hola a todos! Soy un desarrollador C# principiante y me encontré con un problema. Estoy intentando escribir un método universal que acepte cualquier enumeración (enum) y devuelva su descripción o algún valor. Por ejemplo, quiero hacer un método que muestre todos los valores de un enum como una lista de strings. Escribo algo como: ```csharp public static string[] GetEnumNames() where T : Enum { return Enum.GetNames(typeof(T)); } ``` Pero el compilador da un error: "Constraint cannot be special class 'System.Enum'". Leí que en C# no se puede restringir directamente un tipo generic a una enumeración. ¿Es verdad? ¿Qué hacer entonces? Necesito que el método funcione solo con enums, no con cualquier tipo. Vi que en algunos lugares usan `where T : struct`, pero entonces se puede pasar una estructura normal, lo cual no es adecuado. Díganme cómo implementar correctamente este método. ¿Quizás hay algún truco o solución alternativa? ¡Gracias de antemano! **Adición:** Estoy usando .NET Framework 4.7.2, pero si hay una solución para .NET Core / .