根据我的经验,Enums类型非常适合于一些名称列表,这些名称对应于使代码对开发人员更具可读性的值。
我经常抵制向用户写出ENUM名称的诱惑。例如
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
console.writeline(Days.Sat.ToString());
我知道Enums并不打算向用户显示。我的问题是什么是下一个最好的选择,我知道我可以使用值的字典,或类/结构等。枚举非常简单,我想知道下一个简单的替代方法,向用户显示值?
答案 0 :(得分:2)
如评论中所述,您可以使用'说明'属性:
private enum Days
{
[Description("Saturday")]
Sat,
[Description("Sunday")]
Sun,
[Description("Monday")]
Mon,
[Description("Tuesday")]
Tue,
[Description("Wednesday")]
Wed,
[Description("Thursday")]
Thu,
[Description("It's Friday, Friday, gotta get down on Friday")]
Fri
};
public static string DescribeEnum(Enum value)
{
var field = value.GetType().GetField(value.ToString());
var descriptionAttribute = (DescriptionAttribute)Attribute.GetCustomAttribute(
field, typeof(DescriptionAttribute));
return (descriptionAttribute == null)
? value.ToString()
: descriptionAttribute.Description;
}
private static void Main()
{
Console.WriteLine(DescribeEnum(Days.Fri));
// Output:
// It's Friday, Friday, gotta get down on Friday
}