2016-06-21 52 views
0

我正在將一些代碼從VB轉換爲C#,一切都很順利,直到下面幾行與XmlElements相關。這是VB:如何將以下內容從VB轉換爲C#.net?

Dim headerElement As XmlElement = document.DocumentElement("ReplyHeader") 
Dim errorMessage As String = headerElement.Attributes("errorMessage").Value 
errorCode = headerElement.Attributes("returnCode").Value 

這就是我如何將它轉換成C#

XmlElement headerElement = document.DocumentElement("ReplayHeader"); 
string errorMessage = headerElement.Attributes("errorMessage").Value; 
errorCode = headerElement.Attributes("returnCode").Value; 

但我越來越喜歡「非可調用成員‘System.Xml.XmlDocument.DocumentElement’錯誤不能像方法一樣使用。「和「System.Xml.XmlElement.Attributes是一個'屬性',但像'方法'一樣使用」

我的問題真的源於不是在本質上理解VB代碼試圖在這裏做什麼。例如,第一行是創建一個包含文本「ReplyHeader」的XmlElement?如果是這樣,我怎麼在C#中做到這一點?

感謝您的幫助!

+7

你嘗試用[]替換()? –

+2

你應該做的第一件事是看文檔,例如爲['XmlDocument.DocumentElement'](https://msdn.microsoft.com/en-us/library/system.xml.xmldocument.documentelement(v = vs.110).aspx)。在Visual Studio中打開VB文件,並自由使用[F1]鍵。 – RoadieRich

+0

Telerik有一個偉大的工具,這個http://converter.telerik.com/ – pedrofernandes

回答

7

你想要括號,在c#中()表示一個FUNCTION調用。要訪問你需要使用支架[]索引器

XmlElement headerElement = document.DocumentElement["ReplayHeader"]; 
string errorMessage = headerElement.Attributes["errorMessage"].Value; 
errorCode = headerElement.Attributes["returnCode"].Value; 
+0

這次讓我稱它爲「索引者」吧? –

2

詞彙轉換器元素有麻煩區分VB的功能從索引,它們使用相同的語法,在VB中,但不同的語法在C#中調用:

XmlElement headerElement = document.DocumentElement["ReplayHeader"]; 
string errorMessage = headerElement.Attributes["errorMessage"].Value; 
errorCode = headerElement.Attributes["returnCode"].Value;