为什么我不能在数字或特殊字符开头的类中创建一个属性?
PS我对c#有点新手#
public class Test
{
public int 1property {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
DrS*_*lis 24
如果你像我一样,并且你正在搜索这个,因为你想要从名为以digits开头的属性的第三方API反序列化JSON:
using Newtonsoft.Json;
public class ThirdPartyAPIResult
{
[JsonProperty("24h_volume_usd")]
public double DailyVolumeUSD { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*rvy 15
因为C#语言规范(具体来说,第2.4.2节)说明你不能.
在确定给定标记是否是标识符的字面数方面,它还使解析器更容易.标识符中可以包含数字,它们不能以数字开头.任何标识符的第一个字母必须是字符或下划线字符(_).
标识符/属性名称不能以整数值开头.考虑以下备选方案:
public class Test
{
public int PropertyOne {get;set;}
public int Property1 {get;set;}
public int Property_1 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
根据C#标识符规则 - 标识符不能以数字开头.
所以,你不能创建variablename,classname,methodname,interfacename或propertyname以一个数字开始.
但标识符可以从一开始underscore.
试试这个:
public class Test
{
public int _1property {get;set;}
}
Run Code Online (Sandbox Code Playgroud)