今天我打开了一个visual basic项目,它有几行声明一些字符串,其中包含逗号分隔的数据。我修改了其中一个字符串,重建并关闭了该项目。当我来测试它时,出现了错误。当我查看代码时,我发现在我修改的代码之后的行上的字符串也发生了变化 - 它们在逗号之后插入了空格。
有没有人在Visual Studio 2015中看到普通字符串错误地在IDE中应用了格式?
似乎字符串的格式就好像是代码一样。我怀疑这与String Interpolation有关,尽管这些是不使用它的遗留项目。
编辑,FWIW代码与此类似,我已重命名字段和标题以尝试保持简短。
fullColumnMappingsBuilder.Append(",field1,field2,field3,field4,field5,field6,field7,field8,field9,field10")
fullColumnHeadingsBuilder.Append(",heading1,heading2,heading3,heading4,heading5,heading6,heading7,heading8,heading9,heading10")
If clientCode = "ML" Then
fullColumnMappingsBuilder.Append(",mlField")
fullColumnHeadingsBuilder.Append(",mlHeading")
End If
defaultColumnMappingsBuilder.Append(",morefields1,morefields2,morefields3,morefields4")
defaultColumnHeadingsBuilder.Append(",moreHeadings1,moreHeadings2,moreHeadings3,moreHeadings4")
我的编辑只需添加field11和heading11,然后保存。但代码最终看起来像这样:
fullColumnMappingsBuilder.Append(",field1,field2,field3,field4,field5,field6,field7,field8,field9,field10,field11")
fullColumnHeadingsBuilder.Append(",heading1,heading2,heading3,heading4,heading5,heading6,heading7,heading8,heading9,heading10,heading11")
If clientCode = "ML" Then
fullColumnMappingsBuilder.Append(", mlField")
fullColumnHeadingsBuilder.Append(", mlHeading")
End If
defaultColumnMappingsBuilder.Append(", morefields1, morefields2, morefields3, morefields4")
defaultColumnHeadingsBuilder.Append(", moreHeadings1, moreHeadings2, moreHeadings3, moreHeadings4")
问题是IDE在我没有编辑的行上的逗号后插入了空格。
答案 0 :(得分:2)
嗯,我想我知道我是怎么做到的。如果你从这样的事情开始:
Public Class Class1
Sub New()
Dim string1 As String = "Hello there world asdfj asldfkja sad "
Dim string2 As String = "some code like words dim private as object sub"
End Sub
End Class
我想我必须从string1的声明中取出第一个双引号字符,然后将文本光标的位置移动到另一行。在Visual Studio的早期版本中,IDE会将第一行标记为错误。
现在我们有多行字符串,它认为你有一个多行字符串,从第一行末尾的引号运行到 string2 As String&#34; < / strong>,并且以下文本是代码,因此它会被更改(在这种情况下,关键字是大写的)。
Dim string2 As String = "some code Like words Dim Private As Object Sub"
我在编辑字符串时必须更加小心。
答案 1 :(得分:0)
可能不是你的错。
我见过VS 2015会自动进行与上例相似的更改:
Dim string2 As String = "some code like words dim private as object sub"
......改为:
Dim string2 As String = "some code Like words Dim Private As Object Sub"
这是多行和单行字符串,在我根本没有触及的过程中,在.vb文件中我在其他过程中更改字符串。我抓住VS这样做的唯一原因是因为我在办理登机手续前做了比较。
在Visual Studio formatting Strings as VB.NET code中,它建议取消选中工具&gt;选项&gt;文本编辑器&gt;基本&gt;高级&gt;漂亮的列表(重新格式化)代码,但我不愿意关闭所有有用的好东西。
感觉就像VS 2015中的一个错误。在2015年之前的16年中,从未见过使用VS的早期版本。