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 / .
No answers yet.
Inicia sesión para dejar una respuesta