2009-11-18 45 views
1

可能是一個愚蠢的問題,但我對整個「get-and-set-property」 - 編程的種類很陌生,從void到XmlDocument的隱式轉換

我不斷收到我的代碼的這部分編譯錯誤;

private string _File = "Session.xml"; 

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     return _Doc.LoadXml(_File); 
    } 
} 

private XmlElement XmlRoot 
{ 
    get 
    { 
     return XmlDoc.DocumentElement; 
    } 
} 

怎麼回事?我無法向我自己解釋,因爲我甚至沒有看到任何隱式轉換...

回答

1

此代碼是你的問題:

return _Doc.LoadXml(_File); 

LoadXml方法具有void返回類型,因爲該方法不返回任何值,而不是填充XmlDocument實例來自指定的文件路徑。

解決您的問題,只要你的屬性改成這樣:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
+0

哦,孩子,那是那麼明顯......該死-.- – 2009-11-18 15:46:12

2

_Doc.LoadXml(_File);返回void而不是XmlDocument。你的代碼更改爲:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
4

的問題是這一行:

return _Doc.LoadXml(_File); 

你試圖從具有的void返回類型的方法返回一個值。

試試這個:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
}