J'ai la fonction générique suivante:Restriction de fonction générique au travail que sur énumérations
public SomeType SomeFunction<T>(T value)
{
}
Je voudrais maintenant limiter cette fonction générique pour fonctionner uniquement avec Enum
s donc j'essayé ce qui suit:
public SomeType SomeFunction<T>(T value) where T : System.Enum
{
}
Mais ce résultat:
erreur CS0702: contrainte ne peut pas être s pecial class 'System.Enum'
Y at-il un travail autour et par curiosité quelqu'un connaît-il la raison pour laquelle ce type de contrainte n'est pas autorisé?
Vous devriez jeter un oeil à la réponse acceptée dans la dupe mentionnée par Ani. C'est une restriction du langage C#, pas du CLR (par exemple, il est possible de contraindre 'enum' dans F #). La bibliothèque Melody Unconstrained fournit une solution de contournement pour autoriser les contraintes 'enum' dans C# lui-même: http://code.google.com/p/unconstrained-melody/ – LukeH