Avatar ·

Criação de um método genérico com restrição T para Enum em C#

Olá a todos! Sou um desenvolvedor C# iniciante e tive um problema com métodos genéricos. Quero escrever um método universal que aceite uma enumeração (enum) e faça algo útil com ela, como verificar se o valor está definido no enum ou convertê-lo para string. Estou tentando impor uma restrição no tipo T para que ele seja exatamente um enum, mas o compilador reclama. Aqui está meu código: ```csharp public static T ParseEnum(string value) where T : Enum { return (T)Enum.Parse(typeof(T), value); } ``` O compilador emite o erro: "Constraint cannot be special class 'System.Enum'". Li que em C# não é possível usar diretamente Enum em restrições genéricas. Como então criar corretamente um método genérico que funcione apenas com enum? É necessário usar where T : struct e verificar internamente? Ou existe alguma outra forma? Quero evitar duplicação de código para cada enum no projeto. Ficarei grato por exemplos e explicações. Obrigado! <<>>

Problema e sua solução

Você se deparou