이 잘 작동 :예기치 않은 예외가
XDocument xdoc = new XDocument(
new XDeclaration("1.1", "UTF-8", "yes"),
new XProcessingInstruction("foo", "bar"),
new XElement("test"));
을하지만 내가 그것을 변경하는 경우 명시 적으로 배열로서 "PARAMS 배열을"통과 :
: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을 제외시키는 것은 약간 불행한 것 같습니다. –
기회가 주어지면 언어 디자이너가'params' args의 구현을 변경할지 궁금합니다. 어떻게 든 호출 사이트에서 varargs를 전달하고 있음을 명시 적으로 나타낼 수 있다면이를 피할 수없는 비상 한 함정입니다 .ll –