我写了一个像
这样的类定义 public class Item
{
public double? 30dhi { get; set; }
public double? 30dlo { get; set; }
public double? 7dhi { get; set; }
public double? 7dlo { get; set; }
}
为什么它不允许我添加包含字母数字键的属性 错误如下所示
类,结构或接口成员声明的无效标记'30d'
答案 0 :(得分:9)
为什么它不允许我添加包含字母数字键的属性
属性名称必须是标识符。 C#中的标识符不能以数字开头。您可以在第一个字符后有一个数字,但不能为第一个字符。
有关标识符允许内容的准确详细信息,请参阅C#5规范的第2.4.2节。完整的语法太长了,无法在这里发布,但关键部分是:
标识符或关键字:
identifier-start-character 标识符 - 部分字符 opt标识符 - 开始 - 字符:
字母字符
_(下划线字符U + 005F)标识符部分的字符:
标识符部分字符
标识符 - 部分字符 标识符 - 部分字符标识符部分字符:
字母字符
十进制数字符
连接字符
组合字符
格式化字符字母字符:
类Lu,Ll,Lt,Lm,Lo或Nl的Unicode字符 表示Lu,Ll,Lt,Lm,Lo或Nl类字符的unicode-escape-sequence
请注意,30d
的示例非常适合为什么不允许 - 这实际上是数字文字,值为30且类型为double
。 (当然,你实际上有30dhi
,但解析器已将30d
解析为令牌。)