How to Constrain a Generic Type to Enum in C# | CodeTrail