首先,我不明白为什么您需要两个具有相同价值的物品。但是,如果您需要相同的枚举值但以后想要不同的名称,也许可以尝试使用DescriptionAttribute
in System.ComponentModel
?
[Flags]
public enum MyEnum
{
[DescriptionAttribute("Item1")]Item1 = 32768,
[DescriptionAttribute("Item2")]Item2 = 65536,
[DescriptionAttribute("Item3")]Item3 = 524288,
[DescriptionAttribute("Item4")]Item4 = Item3
}
然后你可以用这个方法来取回描述值:
public string ValueOf(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[]) fi.GetCustomAttributes( typeof(DescriptionAttribute), false);
if (attributes.Length > 0)
{
return attributes[0].Description;
}
else
{
return value.ToString();
}
}
我实际上并没有尝试过,所以发布的 MSDN 引用 @MarcinJuraszek 可能仍然适用于此处。
来源:http ://blog.waynehartman.com/articles/84.aspx