Enums can be very useful in cases like where you want to maintain a set of named constants. Imagine you have following values, “Daily, Weekly, SemiMonthly etc” and you want to display these inside a drop down list. And for the dropdown you need to set up a default value. You can easily use enum for this. Of course I am sure all of you must be aware of how to use enums and from this post let’s see how we can set up a default value for an enum and how to get that default value.
So I have the following enum and please note the DefaultValueAttribute which I used to decorate my enum "Period" with.
So only by decorating the enum with DefaultValueAttribute and setting the default value, now my enum "Period" has a default value which is “Monthly”. Now let’s see how I can retrieve it.
Here I have a generic method, I have applied a constraint on the type argument where T : struct and that’s because enums are of value types. Then after getting the type of type argument, I am getting the list of attributes applied to it. Since the only attribute applied is a DefaultValueAttribute, I can cast the result set into an array of DefaultValueAttribute. Then if the result is not null and if it is elements, I am getting the value of first element. Else I am returning the enum which has the value 0 which is the default by nature of course.
Now let’s see how we can call this method. It's pretty simple.