枚举的定义在程序开发中十分方便 .net 支持枚举使用中文 比如:
public enum EnumIsPayType{ 免费 = 1, 付费 = 2 }
如果需要返回汉字的时候
public Int32?PayType{ get; set; }
public string E_PayType
{ get { if (ScaleType.HasValue) { return Enum.GetName(typeof(EnumIsPayType),PayType);
} return string.Empty; } }
但是,在比较规范的枚举使用中,是不能直接使用中文的,只能使用枚举的描述。
public enum EnumIsPayType { [Description("免费")] free= 1, [Description("付费")] pay= 2, }
此时使用上面的方法将返回 free或pay 与需求不符
由此我们需要获取枚举的描述
首先定义一个公共的获取枚举描述的泛型方法
/// <summary> /// 获取枚举描述 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <returns></returns> public static string GetDescription<T>(T value) { string str = value.GetType()?.GetMember(value.ToString())?.FirstOrDefault()?.GetCustomAttribute<DescriptionAttribute>()?.Description; return str ?? string.Empty; }
记住 申明枚举的时候一定不能忘了
[Description(" ")] 这个标签然后我们调用这个方法
string type = GetDescription(EnumIsPayType.pay);
则可以获取到需要返回的枚举描述。
原文地址:https://www.cnblogs.com/widows/p/11226612.html
时间: 2024-11-01 20:30:54