我遇到了一个问题,试图让这段代码起作用:
filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")
我希望它替换一个字符串!exaclty!看起来像这样,包含引号:
“SomeSetting”= DWORD:00000000
但它的作用是寻找这个字符串:
“” SomeSetting “”= DWORD:00000000
我无法让它发挥作用。即使我试过这个:
Dim Test As String = Chr(34)
测试将如下所示: “” 代替 ” 我在这里失踪了什么?
答案 0 :(得分:1)
我想我看到了你的问题......对于人们来说,这是一个非常普遍的,偶然的事情。
字符串是不可变的,这意味着一旦你创建了它们,就不能在不创建新字符串实例的情况下更改它们。
问题在于:
filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")
Replace()
function 返回带有替换值的新字符串 (因为它无法更改原始字符串),但您 < strong>从不使用 它返回的实例。
您应该将旧的字符串变量设置为Replace()
返回的新字符串,如下所示:
filereader = filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")
要避免 (或至少将风险降至最低),请务必阅读Visual Studio的IntelliSense在编写函数调用时向您显示的信息
如果您确实遇到问题,请务必查看MSDN文档以查看是否遗漏了任何内容。他们通常也有示例说明如何使用这些方法。