我可以拥有什么样的财产名称?

时间:2011-12-12 05:10:46

标签: c# properties

我们可以拥有$ref #schema等属性名称吗?如果是这样,怎么样?如果不是为什么不呢? 我实际上是在做这样的事情

dynamic d = new ExpandoObject();
d.$ref = somevlaue;

但我不能这样做?

另外,我如何解决关键字不能成为属性名称的事实?

3 个答案:

答案 0 :(得分:5)

使用

public string @class {get; set;}

将关键字用作变量名称。有关详细信息,您可以查看Identifiers的规则。

答案 1 :(得分:5)

由于您主要对ExpandoObject感兴趣,因此解决方法是通过将ExpandoObject强制转换为IDictionary<string, Object>来直接设置和/或检索这些属性名称:

dynamic d = new ExpandoObject();
var dict = (IDictionary<string, Object>)d;
dict["$ref"] = "haha!";

答案 2 :(得分:3)

该语言具有可接受的名称字符的准则。在您的情况下,您可以尝试使用@ref