【发布时间】:2009-09-24 20:08:32
【问题描述】:
我通常访问枚举描述以获取相应的值,例如:
Enum.GetName(typeof(MyEnum), myid);
我需要一个可以使用任何字符的枚举,例如“hello world %^$£%&”
我见过有人像这里这样附加属性并添加扩展:
http://weblogs.asp.net/stefansedich/archive/2008/03/12/enum-with-string-values-in-c.aspx
但我不知道这是否可以用来访问长描述。
有人做过类似的吗?
谢谢
戴维
【问题讨论】:
-
为清楚起见,您能否发布一个您想使用的枚举示例?
-
为什么你的枚举名称这么长?通常,枚举只是程序员在代码中引用数值的助记符,而不是存储字符串值的方法。通常,当让用户选择从枚举中选择给定值或出于显示目的时,检索名称是明智的。
-
@Achilles:通常枚举会附带一些描述性文本,因此是长名称的原因。
-
我同意,但有人要求我这样做:( public enum PriceIndexType : int { [StringValue("RPI (所有项目不包括抵押")] RPI1 = 1, [StringValue("RPI ( All Items)")] RPI2 = 2, } 我想存储 int 值,但是说当我返回一个列表时,我想显示 long 值。谢谢
-
仅供参考 myid.ToString 将返回 ENum 的名称,除非 myId 不是枚举的类型,然后您只需键入它 ((MyEnum)myId).ToString()
标签: c# enums attributes