编写属性名称C#是否有任何限制

Imr*_*qvi -1 c#

我写了类定义

 public class Item
        {
            public double? 30dhi { get; set; }
            public double? 30dlo { get; set; }
            public double? 7dhi { get; set; }
            public double? 7dlo { get; set; }
        }
Run Code Online (Sandbox Code Playgroud)

为什么它不允许我添加包含字母数字键的属性错误如下所示

类,结构或接口成员声明的无效标记'30d'

Jon*_*eet 9

为什么它不允许我添加具有字母数字键的属性

属性名称必须是标识符.C#中的标识符不能以数字开头.您可以第一个字符后面有一个数字,但不能作为第一个字符.

有关标识符允许的详细信息,请参阅C#5规范的第2.4.2节.完整的语法太长了,无法在这里发布,但关键部分是:

identifier-or-keyword:
   identifier-start-character identifier-part-characters opt

identifier-start-character:
  letter-character
  _(下划线字符U + 005F)

identifier-part-characters:
  identifier-part-character
  identifier-part-characters identifier-part-character

identifier-part-character:
  字母字符
  十进制数字符
  连接字符
  组合字符
  格式字符

字母字符:
  类Lu,Ll,Lt,Lm,Lo或Nl的Unicode字符表示类Lu,Ll,Lt,Lm,Lo或Nl
  的字符的unicode-escape-序列

请注意,这个示例30d很好,为什么不允许它 - 实际上是数值文字,值为30和类型double.(实际上你已经得到30dhi了,但是解析器已经解析30d为一个令牌.)