-1

我正在尝试将文本写入文件,并且除了一个错误之外都拥有它。它说“预期表达”

这是代码:

 Using writer As StreamWriter = New StreamWriter(filepath)
            writer.Write("[HealthBarSettings]" & vbNewLine &  _
"MaxHealthTicks = 50" & vbNewLine &  _
"MaxHealthMicroTicks = 100" & vbNewLine &  _
"DefaultHealthPerMicroTick = 50" & vbNewLine &  _
"DefaultHealthPerTick = 200" & vbNewLine &  _
"DefaultHealthPerMegaTick = 1000" & vbNewLine &  _
 & vbNewLine &  _
"TickAlpha = 200" & vbNewLine &  _
"MicroTickAlpha = 140" & vbNewLine &  _
"MicroTickHeight = 0.5" & vbNewLine &  _
"MegaTickAlpha = 255" & vbNewLine &  _
"TickThickness = 1.0" & vbNewLine &  _
"MicroTickThickness = 1.0" & vbNewLine &  _
"MegaTickThickness = 2.0" & vbNewLine &  _
 & vbNewLine &  _
"UseCompression = 1" & vbNewLine &  _
"GoTransparent = 1" & vbNewLine &  _

错误出现在第 8 行,如果它显示“& vbNewLine & _”,而该行没有其他内容,则第一个 & 带有下划线。像这样的其他行没有错误。

4

3 回答 3

2

我真的很讨厌字符串连接。只是为了避免它,我会写

Dim sb = new StringBuilder(680)
sb.AppendLine("[HealthBarSettings]")
sb.AppendLine("MaxHealthTicks = 50")
sb.AppendLine("MaxHealthMicroTicks = 100")
sb.AppendLine("DefaultHealthPerMicroTick = 50")
sb.AppendLine("DefaultHealthPerTick = 200")
sb.AppendLine("DefaultHealthPerMegaTick = 1000")
sb.AppendLine()
sb.AppendLine("TickAlpha = 200")
sb.AppendLine("MicroTickAlpha = 140")
sb.AppendLine("MicroTickHeight = 0.5")
sb.AppendLine("MegaTickAlpha = 255")
sb.AppendLine("TickThickness = 1.0")
sb.AppendLine("MicroTickThickness = 1.0")
sb.AppendLine("MegaTickThickness = 2.0")
sb.AppendLine()
sb.AppendLine("UseCompression = 1")
sb.AppendLine("GoTransparent = 1")
writer.Write(sb.ToString())

我创建了一个初始容量为 680 个字符的 StringBuilder。(假设 17 行,每行 40 个字符)。StringBuilder有一个内部缓冲区,用于存储字符。此缓冲区以 16 个字符的容量开始。您可以调用 StringBuilder 的构造函数说您需要 1K 缓冲区。这将为请求的大小创建内部缓冲区,如果它足够大,当添加更多字符时,框架不需要执行调整大小操作,超过缓冲区当前大小。

于 2013-04-17T18:55:33.053 回答
0

Change line 8 to:

"DefaultHealthPerMegaTick = 1000" & vbNewLine  _

 & vbNewLine &  _

The problem was the extra &. You don't need a concatenation operator when using _

于 2013-04-17T18:50:50.760 回答
0

您已使用并签名两次

1. "MaxHealthTicks = 50" & vbNewLine &  _
2. "MaxHealthMicroTicks = 100" & vbNewLine &  _
3. "DefaultHealthPerMicroTick = 50" & vbNewLine &  _
4. "DefaultHealthPerTick = 200" & vbNewLine &  _
6. "DefaultHealthPerMegaTick = 1000" & vbNewLine &  _
7. & vbNewLine &  _
8. "TickAlpha = 200" & vbNewLine &  _
9. "MicroTickAlpha = 140" & vbNewLine &  _
10. "MicroTickHeight = 0.5" & vbNewLine &  _
11. "MegaTickAlpha = 255" & vbNewLine &  _
12. "TickThickness = 1.0" & vbNewLine &  _
13. "MicroTickThickness = 1.0" & vbNewLine &  _
14. "MegaTickThickness = 2.0" & vbNewLine &  _
15.  & vbNewLine &  _
16. "UseCompression = 1" & vbNewLine &  _
17. "GoTransparent = 1" & vbNewLine &  _

请参阅我提到的最后一行...第 6 行有“&”,第 7 行也有“&”,所以它使用了两次,并且在 14 和 15 上也没有行,如果 17 没有行你的最后一行,则不需要使用

&  _
于 2013-04-17T18:59:54.517 回答