public enum DAYS {
Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
这里假设我想覆盖枚举元素的默认值,就像星期一一样。在这里,据我所知,给1到星期一2将是星期二的默认值,下一个将有3左右,
让我们改变一下情景
public enum days
{
monday = 4,
tuesday=8,
wednesday,
thursday,
friday=25,
saturday,
sunday
}
这将是星期三,星期四和星期六,星期日的价值......?
问题2:我们可以将char和string类型的值赋给枚举元素...
问题3:我们可以将enum重写为char或string类型吗?
喜欢
public enum name :string
{
first_name="nishant",
Last_name = "kumar"
}
答案 0 :(得分:7)
您未指定的任何值比前一个值高1。 (周三将是9,周四将是10,周六26和周日27.)请注意,当枚举用[Flags]
属性修饰时,这甚至是正确的 - 你应该总是指定与每个名称相关的基础值使用[Flags]
时。
来自C#4规范的第14.3节:
否则,通过将文本上在前的枚举成员的关联值增加1来获得枚举成员的关联值。该值必须在可由基础类型表示的值范围内,否则会发生编译时错误。
不,枚举的有效基础类型为sbyte
,byte
,short
,ushort
,int
,{{1} },uint
和long
,根据C#规范的第14.1节。它明确指出:
请注意,
ulong
不能用作基础类型。
(这里没有提到字符串,因为它已经说过基础类型必须是整数类型。)
根据2的答案无关。
通常,如果要将任意字符串值与枚举值相关联,则应使用键入枚举值名称的资源文件,或使用属性(例如DescriptionAttribute
)。
答案 1 :(得分:4)