這工作得很好:意外的異常
XDocument xdoc = new XDocument(
new XDeclaration("1.1", "UTF-8", "yes"),
new XProcessingInstruction("foo", "bar"),
new XElement("test"));
但是如果我把它改爲通過「參數數組」明確作爲數組:
object[] content = new object[] {
new XDeclaration("1.1", "UTF-8", "yes"),
new XProcessingInstruction("foo", "bar"),
new XElement("test")
};
xdoc = new XDocument(content);
它失敗:
System.ArgumentException:無法將空白字符添加到內容。
這兩個例子是不是完全等價?這裏發生了什麼?
我看;我沒有意識到我正在調用不同的超載。似乎有點不幸的是'XDocument(object [])'接受各種對象,但由於某種原因排除了XDeclaration。 – 2009-09-17 13:59:37
我想知道如果有機會,語言設計師現在是否會改變'params'參數的實現。這是一個非顯而易見的陷阱,如果可以明確指出您以某種方式在呼叫站點傳遞可變參數,那麼將避免這種陷阱。 – 2012-08-16 12:03:47