我在这里做了一点搜索,我很惊讶没有人问过这个问题.对于多行语句,Visual Studio 2010的VB智能缩进是否会被严重破坏?或者我正在做/设置错误的东西?我把它设置为4个字符的缩进与保持标
Public Sub Sub1() Dim foo As New MyClassA With {.FileName = "test", .Format = MyEnumForImageFormat.jpg, .IsReallySpecial = False, .Name = "testN", .SourceId = Guid.NewGuid(), .VariantName = "TestV", .Width = 800, .Height = 600} End Sub
怎么会有人想这样格式化他们的代码?我想,也许我需要重新格式化(Ctrl K Ctrl D):
Public Sub Sub1() Dim foo As New ImageBase With {.FileName = "test", .Format = MyEnumForImageFormat.jpg, .IsReallySpecial = False, .Name = "testN", .SourceId = Guid.NewGuid(), .VariantName = "TestV", .Width = 800, .Height = 600} End Sub
为了更好的衡量,我再次尝试重新格式化.瞧,它把它推得更远了.我再次推了它,它又动了一些.最后,经过四次重新格式化后,我的代码如下:
Public Sub Sub1() Dim foo As New ImageBase With {.FileName = "test", .Format = MyEnumForImageFormat.jpg, .IsReallySpecial = False, .Name = "testN", .SourceId = Guid.NewGuid(), .VariantName = "TestV", .Width = 800, .Height = 600} End Sub
更好,但我们真的希望连续的线条只缩进一个空格吗?为什么我必须重新格式化四次以获得我想要的东西?最重要的是,尝试在上面添加一个属性定义并不保持任何对齐 – 默认缩进是通过随机确定的空格和制表符数量向右级联偏移.
使用旧式的延续字符没有帮助.我怎样才能有任何理智的智能缩进?
根据您选择拆分线的确切位置,您会发现自动缩进更好或更差.在你的例子中,我的风格是将开括号和第一个项目带到下一行,之后缩进将表现得更好.Public Sub Sub1() Dim foo As New MyClassA With {.FileName = "test", .Format = MyEnumForImageFormat.jpg, .IsReallySpecial = False, .Name = "testN", .SourceId = Guid.NewGuid(), .VariantName = "TestV", .Width = 800, .Height = 600} End Sub
不想假设太多,我相信多行语句中每行的缩进由前一行控制.然而,通过这种风格选择,您会发现使用自然回归添加项目以正确定位自己.将任何粘贴片段复制到不同缩进级别的目标时,这仍然会导致缩进问题,但由于返回的位置正确,我手动重置每一行并没有太多问题(重复Down,End,Delete,输入.)
类似的解决方案对于多行lambda函数很有用,但是这些函数比直线多行语句更好.正确定位开启调用会自动纠正整个例程的缩进.
这不是很好,缩进浮动:
Public Sub Sub1() Dim a As New Action(Sub() Dim b As Double = 4.0 Dim c As Double = 5.0 Dim d As Double = b * c End Sub) End Sub
这与压头的表现很好:
Public Sub Sub1() Dim a As New Action( Sub() Dim b As Double = 4.0 Dim c As Double = 5.0 Dim d As Double = b * c End Sub) End Sub
正如个人风格我更喜欢这些,其他人可能会得到相同的结果与不同的外观.