some of the restrictions on generic constraints have been removed. You can now specify the type System.Enum
or System.Delegate
as base class constraints for a type parameter.
You can also use the new unmanaged
constraint, to specify that a type parameter must be an unmanaged
type. An unmanaged
type is a type that isn't a reference type and doesn't contain any reference type at any level of nesting.
Consider the following generic method that builds a dictionary of all the values in an enum mapped to the string representations:
Next, declare an enum
type:
Finally, test how it works:
Modify the enum
values, or the method declaration or test code to experiment on your own.