我正在尝试简化尝试在string.format方法中分配多行字符串的一些代码行,但它会在“< / a>”处引发异常字符,它说“表达期望”:
Dim RegistryScript As String = String.Format(<![CDATA[
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Environment]
"PATH"="{0}"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"PATH"="{1}"
]]></a>.Value, String.Join(";", PATH_Current), String.Join(";", PATH_Local))
所以如果我不能这样做那么也许我可以做一些类似的字符串技巧?
这是我希望在代码中使其更具可读性的原始代码:
' Current user
IO.File.WriteAllText(FilePath, " Windows Registry Editor Version 5.00" & Environment.NewLine, System.Text.Encoding.Unicode)
IO.File.AppendAllText(FilePath, "[HKEY_CURRENT_USER\Environment]" & Environment.NewLine, System.Text.Encoding.Unicode)
IO.File.AppendAllText(FilePath, String.Format("""PATH""=""{0}""", String.Join(";", PATH_Current)) & Environment.NewLine, System.Text.Encoding.Unicode)
' Local Machine
IO.File.AppendAllText(FilePath, " Windows Registry Editor Version 5.00" & Environment.NewLine, System.Text.Encoding.Unicode)
IO.File.AppendAllText(FilePath, "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]" & Environment.NewLine, System.Text.Encoding.Unicode)
IO.File.AppendAllText(FilePath, String.Format("""PATH""=""{0}""", String.Join(";", PATH_Local)) & Environment.NewLine, System.Text.Encoding.Unicode)
Console.WriteLine(" [+] Backup done!")
我也尝试过使用stringbuilder,但是我得到了一些不可读的代码,这就是为什么我试图将它们全部放在多行字符串中。
答案 0 :(得分:1)
你可以这样做:
Dim multi As String = <![CDATA[
Some
multiline text
]]>.Value
现在你可以做到:
Console.WriteLine(String.Format("multi{0} string = {1}", "line", multi))
答案 1 :(得分:1)
让自己更轻松。
Using sr As New StreamReader({path})
sr.WriteLine("whatever")
sr.writeLine("somemore on next line")
End Using
答案 2 :(得分:1)
VB.NET不支持多行字符串,但您可以使用XML文字来模拟它们。但是,您的文字必须是有效的XML。要么以<a>
标记开头,要么在最后留下</a>
结束标记。