namespace Console_App
{
public class EnumValueAttribute : Attribute
{
private string _EnumValue;
public string EnumValue { get { return this._EnumValue; } }
public EnumValueAttribute(string enumValue)
{
this._EnumValue = enumValue;
}
}
public enum Days
{
[EnumValue("Sun")]
Sunday,
[EnumValue("Mon")]
Monday,
[EnumValue("Tue")]
Tuesday,
[EnumValue("Wed")]
Wednesday,
[EnumValue("Thu")]
Thursday,
[EnumValue("Fri")]
Friday,
[EnumValue("Sat")]
Saturday
}
class Program
{
static void Main(string[] args)
{
Enum.GetValues(typeof(Days))
.Cast<Enum>()
.Select(m => new
{
EnumValue = Convert.ToInt32(m).ToString(),
EnumName = Enum.GetName(typeof(Days), Convert.ToInt32(m)),
EnumAttributeName = (typeof(Days).GetField(Enum.GetName(typeof(Days), Convert.ToInt32(m)), BindingFlags.Public)
.GetCustomAttributes(typeof(EnumValueAttribute), false)
.FirstOrDefault() as EnumValueAttribute)
.EnumValue
})
.ToList()
.ForEach(m => Console.WriteLine(m.EnumValue + "\t" + m.EnumName + "\t" + m.EnumAttributeName));
}
}
}
RT:
未经处理的异常: System.NullReferenceException: 未将对象引用设置到对象的实例。