C# 我可以有什么样的财产名称?
我们可以有像C# 我可以有什么样的财产名称?,c#,properties,C#,Properties,我们可以有像$ref#schema这样的属性名吗?如果是,怎么做?若否,原因为何? 我真的要做这样的事 dynamic d = new ExpandoObject(); d.$ref = somevlaue; 但我不能这么做 另外,我如何解决关键字不能是属性名这一事实?该语言有可接受名称字符的指导原则。在您的情况下,您可以尝试使用@ref使用 public string @class {get; set;} 用于将关键字用作变量名。有关更多信息,您可以查看。的规则,因为您主要对Expando
$ref#schema
这样的属性名吗?如果是,怎么做?若否,原因为何?
我真的要做这样的事
dynamic d = new ExpandoObject();
d.$ref = somevlaue;
但我不能这么做
另外,我如何解决关键字不能是属性名这一事实?该语言有可接受名称字符的指导原则。在您的情况下,您可以尝试使用
@ref
使用
public string @class {get; set;}
用于将关键字用作变量名。有关更多信息,您可以查看。的规则,因为您主要对
ExpandoObject
感兴趣,解决方法是通过将ExpandoObject强制转换为IDictionary
,直接设置和/或检索这些属性名:
dynamic d=newexpandoobject();
var dict=(i词典)d;
dict[“$ref”]=“哈哈!”;
在属性名中包含$
和#
有什么意义?这是我通常做的,还有其他方法吗?否-C编译器将不允许您使用语言规范(第2.4.2节)详述的无效属性名成功编译,即包含$
dynamic d = new ExpandoObject();
var dict = (IDictionary<string, Object>)d;
dict["$ref"] = "haha!";