我正在将一些代码从VB转换为C#,一切都很顺利,直到以下与XmlElements相关的行。这是VB:
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#中执行此操作?
感谢您的帮助!
答案 0 :(得分:7)
你想要括号,在c#中,()
对表示一个FUNCTION调用。要访问元素,您需要使用括号[]
索引器
XmlElement headerElement = document.DocumentElement["ReplayHeader"];
string errorMessage = headerElement.Attributes["errorMessage"].Value;
errorCode = headerElement.Attributes["returnCode"].Value;
答案 1 :(得分:2)
词法转换器无法区分VB的索引器函数调用,它们在VB中使用相同的语法但在C#中使用不同的语法:
sub save()
Application.DisplayAlerts= False
FileName1 = Range("D4")
ActiveWorkbook.SaveCopyAs FileName:="C:\Users\felonj\Desktop\list\" & FileName1 & "-" & "Audit checklist" & ".xlsm"
MsgBox "File Saved successfully!", , "Save"
Application.DisplayAlerts = True
End sub