Enums are by nature a user-defind value type to represent a list of name integers
There are also some constraints how you can name the enumeration members
Name of enumeration members can not:
- be prefixed with the type name because type information is expected to be provided by development tools.
- Be a numeric value, or even starting with a number Ex. 123ABC is not allowed
- Have spaces in the name. Ex. United States of Amercia is not allowed
- Contains non-alphabet characters (and limited the the English Language)
The Description attribute decoration is used to define a descriptive name for a give property or event.
The description decoration is defined under the System.ComponentModel Namespace
Unfortuantly, the way to read the names of the Enum members is limited and it return only the Enum Member name, not the description.
Prerequisits
Solution
- Use the Description Attribute from the System.ComponentModel Namespace
- use
CodeHelper.Core.Extensions
- Call the description with the
Description()
method
Example
The Countries Enum
using System.ComponentModel;
public enum Countries
{
[Description("United States of America")]
UnitedStates,
[Description("Belgium, Belgie, Belgique")]
Belgium,
France,
}
The Code
using CodeHelper.Core.Extensions;
var _usaDesc = Countries.UnitedStates.Description();
var _usaString = Countries.UnitedStates.ToString();
var _usaNumber = Countries.UnitedStates;
Result
United States of America
UnitedStates
0
Top comments (0)