Generic C# method taking where the enum value as a parameter [duplicate]
-
27-10-2019 - |
Question
Possible Duplicate:
Create Generic method constraining T to an Enum
Given a generic method that only operates on enum values
static void <T> method(T enum) where T ?????
{
// do something with enum...
}
How do I constrain T
such that only enum values are accepted? I've tried using struct
however this disallows the use calling my method with a nullable enum type.
Solution
Generic constraints on enum types are impossible in C#, but are possible in IL. Have a look at Jon Skeet's project, Unconstrained Melody, it will allow you to constraint your generic methods to enums.
OTHER TIPS
In C# you can't. For some reason I don't know the C# specification explicitly forbids System.Enum
as a constraint.
And even then it wouldn't accept nullable enums because nullable enums are no enums.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow