我正在尝试设置一个枚举来固定钣金规(厚度)。如果我能写的话,我认为这将是最直观的:
using System.ComponentModel;
public enum Gauge
{
[Description("24 Gauge")]
24Ga = 239,
[Description("20 Gauge")]
20Ga = 359,
[Description("18 Gauge")]
18Ga = 478,
[Description("16 Gauge")]
16Ga = 598,
[Description("14 Gauge")]
14Ga = 747
}
但Visual Studio拒绝了这一点。
相反,这没关系:
using System.ComponentModel;
public enum Gauge
{
[Description("24 Gauge")]
G24 = 239,
[Description("20 Gauge")]
G20 = 359,
[Description("18 Gauge")]
G18 = 478,
[Description("16 Gauge")]
G16 = 598,
[Description("14 Gauge")]
G14 = 747
}
这使得很明显不允许您使用数字字符启动Enum成员名称,即使通常允许使用变量名称。
我的问题是:这个限制在哪里指定? Enum Class documentation似乎没有提到它。
答案 0 :(得分:3)
是否允许使用以数字开头的枚举成员名称?
不,语言语法不允许。
identifier-start-character:
letter-character
_ (the underscore character U+005F)
答案 1 :(得分:3)
没有。枚举成员必须是有效的标识符。来自C# 5 specification的第14.3节:
枚举类型声明的主体定义零个或多个枚举成员,它们是枚举类型的命名常量。没有两个枚举成员可以使用相同的名称。
枚举成员声明:
枚举成员声明
enum-member-declarations , enum-member-declaration
枚举成员声明:的
属性 opt 标识符
属性 opt 标识符
=
常量表达式
...和标识符在2.4.2节中描述:
标识符:
可用的标识符
@
标识符或关键字
可用的标识符
标识符或关键字不是关键字
标识符或关键字:
identifier-start-character 标识符 - 部分字符 opt
标识符 - 开始 - 字符:
字母字符
_
(下划线字符U + 005F)
注意数字不 标识符 - 起始字符 em>。