2011-12-12 53 views
0

我們能否擁有像$ref #schema這樣的房產名稱?如果是這樣,怎麼樣?如果不是爲什麼不呢? 我其實做這樣的事情我可以擁有什麼樣的房產名稱?

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

,但我不能這樣做呢?

另外,我該如何解決關鍵字不能是屬性名的事實?

+1

什麼是有'$'點和無論如何,你的房產名稱中都有'#'? – BoltClock

回答

5

使用

public string @class {get; set;} 

使用關鍵字作爲變量名。欲瞭解更多信息,你可以看到Identifiers規則。

3

該語言具有可接受的名稱字符的指導原則。在你的情況下,你可以嘗試使用@ref

5

既然你的主要興趣在ExpandoObject,一個解決方法是直接設置和/或通過鑄造ExpandoObject來檢索這些屬性名稱的IDictionary<string, Object>

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

這是我通常做的,還有其他方法嗎? –

+0

否 - C#編譯器將不允許您使用語言規範(第2.4.2節)詳述的無效屬性名稱成功編譯,即包含'$' – BrokenGlass

相關問題