Enum类型 枚举内部值/名

enum Days
{
Nothing=0,
Mon=1,
Stu=2
}

static void Main(string[] args)
{
foreach (int item in Enum.GetValues(typeof(Days)))
{
int value = item;
string name= Enum.GetName(typeof(Days), item);
}

}

/// <summary>
/// 枚举描述
/// </summary>
/// <param name="e"></param>
/// <returns></returns>
public static String GetEnumDesc(Enum e)
{
FieldInfo fieldInfo = e.GetType().GetField(e.ToString());
if (fieldInfo != null)
{
DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (EnumAttributes.Length > 0)
{
return EnumAttributes[0].Description;
}
}
return e.ToString();
}

原文链接

public static T ToEnum<T>(int value, T defaultT) where T : struct
{
string enumName = Enum.GetName(typeof(T), value);

return ToEnum<T>(enumName, defaultT);
}

public static T ToEnum<T>(string enumName, T defaultT) where T : struct
{
if (string.IsNullOrWhiteSpace(enumName))
{
return defaultT;
}

T result;

if (!Enum.TryParse<T>(enumName.Trim(), out result))
{
return defaultT;
}

if (Enum.IsDefined(typeof(T), result))
{
return result;
}

return defaultT;
}

上一篇:CMSIS Example - Signal


下一篇:ASP.NET Core中如何针对一个使用HttpClient对象的类编写单元测试