¿Pueden mis enumeraciones tener nombres descriptivos? [duplicar]
tengo lo siguienteenum
public enum myEnum
{
ThisNameWorks,
This Name doesn't work
Neither.does.this;
}
¿ No es posible tener enum
correos electrónicos con "nombres descriptivos"?
Aceptado
Podrías usar el Description
atributo, como sugirió Yuriy. El siguiente método de extensión facilita la obtención de la descripción de un valor determinado de la enumeración:
public static string GetDescription(this Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name != null)
{
FieldInfo field = type.GetField(name);
if (field != null)
{
DescriptionAttribute attr =
Attribute.GetCustomAttribute(field,
typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
}
return null;
}
Puedes usarlo así:
public enum MyEnum
{
[Description("Description for Foo")]
Foo,
[Description("Description for Bar")]
Bar
}
MyEnum x = MyEnum.Foo;
string description = x.GetDescription();
Los nombres de los valores de enumeración deben seguir las mismas reglas de nomenclatura que todos los identificadores en C#; por lo tanto, solo el nombre es correcto.