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.

Was it helpful?

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
scroll top