为什么我不能在数字或特殊字符开头的类中创建属性?
P.S。我是c#
的新手public class Test
{
public int 1property {get;set;}
}
答案 0 :(得分:22)
如果您喜欢我,并且您正在搜索此内容,因为您想要从名为以数字开头的属性的第三方API反序列化JSON:
using Newtonsoft.Json;
public class ThirdPartyAPIResult
{
[JsonProperty("24h_volume_usd")]
public double DailyVolumeUSD { get; set; }
}
答案 1 :(得分:13)
因为C#语言规范(特别是第2.4.2节)声明你不能。
在确定给定标记是否是标识符的字面数方面,它还使解析器更容易。标识符中可以包含数字,它们不能以数字开头。任何标识符的第一个字母必须是字符或下划线字符(_
)。
答案 2 :(得分:7)
Identifier/Property Names cannot start with integer values.请考虑以下备选方案:
public class Test
{
public int PropertyOne {get;set;}
public int Property1 {get;set;}
public int Property_1 {get;set;}
}
答案 3 :(得分:5)
根据C#标识符规则 - 标识符不能以数字开头。
因此,您无法以数字开头创建variablename
,classname
,methodname
,interfacename
或propertyname
。
但标识符可以以underscore
开头。
试试这个:
public class Test
{
public int _1property {get;set;}
}