C# c中枚举元素的默认值?

C# c中枚举元素的默认值?,c#,C#,这里假设我想像星期一一样覆盖enum元素的默认值。这里我知道,在给1到星期一之后,2将是星期二的默认值,下一个将有3左右 让我们改变一下情况 public enum DAYS { Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } 星期三、星期四和星期六、星期日的价值是多少 问题2: 我们可以为枚举元素指定char和string类型的值吗 问题3: 我们可以将枚举重写为字符或字符串类型吗 像 public

这里假设我想像星期一一样覆盖enum元素的默认值。这里我知道,在给1到星期一之后,2将是星期二的默认值,下一个将有3左右

让我们改变一下情况

public enum DAYS {
    Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
星期三、星期四和星期六、星期日的价值是多少

问题2:

我们可以为枚举元素指定char和string类型的值吗

问题3:

我们可以将枚举重写为字符或字符串类型吗

public enum days
{
    monday = 4,
    tuesday=8,
    wednesday,
    thursday,
    friday=25,
    saturday,
    sunday
}
星期三等于9,星期四等于10。周六是26号,周日是27号。 不 不 星期三等于9,星期四等于10。周六是26号,周日是27号。 不 不 任何未指定的值都比上一个值高1。周三9点,周四10点,周六26点,周日27点。请注意,当枚举使用[Flags]属性修饰时,这甚至是正确的-在使用[Flags]时,您应该始终指定与每个名称关联的基础值

根据C4规范第14.3节:

否则,枚举成员的关联值将通过将文本上位于前面的枚举成员的关联值增加1来获得。该值必须在可由基础类型表示的值的范围内,否则会发生编译时错误

否,根据C规范第14.1节,枚举的有效底层类型为sbyte、byte、short、ushort、int、uint、long和ulong。它明确说明:

请注意,char不能用作基础类型

这里没有提到字符串,因为已经说过基础类型必须是整型

根据第2条的答案不相关

通常,如果要将任意字符串值与枚举值关联,应使用键入枚举值名称的资源文件,或使用属性,例如

任何未指定的值都比上一个值高1。周三9点,周四10点,周六26点,周日27点。请注意,当枚举使用[Flags]属性修饰时,这甚至是正确的-在使用[Flags]时,您应该始终指定与每个名称关联的基础值

根据C4规范第14.3节:

否则,枚举成员的关联值将通过将文本上位于前面的枚举成员的关联值增加1来获得。该值必须在可由基础类型表示的值的范围内,否则会发生编译时错误

否,根据C规范第14.1节,枚举的有效底层类型为sbyte、byte、short、ushort、int、uint、long和ulong。它明确说明:

请注意,char不能用作基础类型

这里没有提到字符串,因为已经说过基础类型必须是整型

根据第2条的答案不相关


通常,如果要将任意字符串值与枚举值关联,应使用键入枚举值名称的资源文件,或者使用一个属性,例如…

请稍微格式化您的问题。请稍微格式化您的问题。先生,我在想,如果将char类型转换为int,则可以将char存储在enum元素中。@Nishant:不,您存储的是整数。。。只是在源代码中将其表示为char文本。我不建议这样做。先生,我在想,如果将char类型转换为int,那么就可以将char存储在enum元素中。@Nishant:不,您存储的是一个整数。。。只是在源代码中将其表示为char文本。我不推荐。先生,你能澄清一下吗。通常,如果要将任意字符串值与枚举值关联,则应使用键入枚举值名称的资源文件,或使用属性(例如DescriptionAttribute)。先生,您能澄清它吗。通常,如果要将任意字符串值与枚举值关联,应使用键入枚举值名称的资源文件,或使用属性,例如DescriptionAttribute。
public enum name :string
{
    first_name="nishant",
    Last_name = "kumar"
}