using System;
using System.ComponentModel;
namespace Demo
{
[Flags]
public enum Directions
{
[Description("Doğu")]
E = 0,
[Description("Kuzey Doğu")]
NE = 1,
[Description("Kuzey")]
N = 2,
[Description("Kuzey Batı")]
NW = 3,
[Description("Batı")]
W = 4,
[Description("Güney Batı")]
SW = 5,
[Description("Güney")]
S = 6,
[Description("Güney Doğu")]
SE = 7,
}
public static class EnumsExtensions
{
public static string GetDescription(this Enum enumerationValue)
{
var type = enumerationValue.GetType();
var memberInfo = type.GetMember(enumerationValue.ToString());
if (memberInfo.Length > 0)
{
var attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attrs.Length > 0)
{
return ((DescriptionAttribute)attrs[0]).Description;
}
}
return enumerationValue.ToString();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Directions.E.GetDescription());
Console.WriteLine(Directions.NE.GetDescription());
Console.WriteLine(Directions.N.GetDescription());
Console.WriteLine(Directions.NW.GetDescription());
Console.WriteLine(Directions.W.GetDescription());
Console.WriteLine(Directions.SW.GetDescription());
Console.WriteLine(Directions.S.GetDescription());
Console.WriteLine(Directions.SE.GetDescription());
}
}
}