为什么我不能在类中以数字或特殊字符开头创建属性?
P.S. 我对C#比较新。
public class Test
{
public int 1property {get;set;}
}
如果你跟我一样,搜索这个内容是因为你想要反序列化一个起始数字命名的属性的第三方API返回的JSON数据:
using Newtonsoft.Json;
public class ThirdPartyAPIResult
{
[JsonProperty("24h_volume_usd")]
public double DailyVolumeUSD { get; set; }
}
因为 C# 语言规范(特别是第 2.4.2 节)规定你不能这样做。
这也能使解析器更容易地确定一个给定的令牌是一个字面数还是一个标识符。标识符中可以包含数字,但不能以数字开头。任何标识符的第一个字母必须是字符或下划线字符 (_
)。
public class Test
{
public int PropertyOne {get;set;}
public int Property1 {get;set;}
public int Property_1 {get;set;}
}
FirstObject
,SecondObject
。在其他情况下,根据它们的来源进行区分可能是有益的,例如 SourceObject
,DestinationObject
或 TargetObject
。 - Erikpublic class Test
{
public int _1property {get;set;}
}