0

C#

太长

public void AcceptableFunctionName(string variable, int anotherVariable, object variableThree)
{

}

可接受

public void AcceptableFunctionName(
    string variable, int anotherVariable, object variableThree)
{

}

选择

public void AcceptableFunctionName(
    string variable,
    int anotherVariable,
    object variableThree)
{

}

VB.NET

太长

Public Sub AcceptableFunctionName(variable As String, anotherVariable As Integer, variableThree As Object)

End Sub

什么?

Public Sub AcceptableFunctionName(
                                 variable As String, anotherVariable As Integer, variableThree As Object)

End Sub

什么?

Public Sub AcceptableFunctionName(
                                 variable As String,
                                 anotherVariable As Integer,
                                 variableThree As Object)

End Sub

问题

如何使 Visual Studio 自动更好地格式化我的 VB.NET 方法?

可接受

Public Sub AcceptableFunctionName(
    variable As String, anotherVariable As Integer, variableThree As Object)

End Sub

我试过了

工具 -> 选项 -> 文本编辑器 -> 基本 -> 选项卡 -> 缩进:无、块、智能

没有任何

    Public Sub AcceptableFunctionName(
variable As String, anotherVariable As Integer, variableThree As Object)

    End Sub

堵塞

Public Sub AcceptableFunctionName(
variable As String, anotherVariable As Integer, variableThree As Object)

End Sub
4

3 回答 3

3

VB 有自己的约定。不要从其他编程语言中导入那些,这将导致与其他代码库的不一致。

相反,拥抱 VB 的风格。事实上,当您尝试在第一个参数之前中断时,您正确地观察到结果很奇怪。但是,如果您在之后执行此操作,则一切都有意义:

Public Sub AcceptableFunctionName(variable As String,
                                  anotherVariable As Integer,
                                  variableThree As Object)
    ' …
End Sub

您会发现 IDE始终支持这种缩进模式,尤其是在方法调用和 LINQ 表达式中。

现在,就个人喜好而言,我也更喜欢 C# 将所有后续行缩进单个缩进宽度的约定,但我们开始吧。

于 2013-07-31T14:51:56.260 回答
2

行尾在 VB.NET 中很重要,它们是语句终止符。相当于分号; 在 C# 中。使用空格作为句法元素并不少见,Python 是另一个例子。您不能指望 IDE 为您插入换行符,这会改变程序的含义。您必须使用行继续符,即下划线 _。

工作是在 VB10(VS2010 版本)中完成的,下划线的使用是可选的。称为“隐式行继续”的功能。你不能随意跳过下划线,你必须在正确的地方换行。它在这个 MSDN 页面中有很好的记录,向下滚动到隐式行继续部分。

就在上面,您会看到记录下划线的用法。在此之上,您将看到如何使用 : 字符将多个语句放在一行中。

请避免假设 VB.NET 类似于 C#,VB.NET 语法规则与您用花括号语言编写代码的方式根本不同。

于 2013-07-31T08:54:54.743 回答
1

在 Vb.Net 中,当您想在另一行继续使用时_

Public Sub AcceptableFunctionName( _
variable As String, _
anotherVariable As Integer, _
variableThree As Object)
    '...
End Sub

代码内部也一样:

Dim s As String = "This is my " & _
                       "line"

请注意,您不能在多行块中使用注释。
您可以阅读有关它的MSDN 文档也很有用。


编辑:

看起来,从 Visual Studio 2010 开始,编译器会自动接受一些不带字符的换行符_。请参阅MSDN 中的隐式行继续

于 2013-07-31T05:09:44.780 回答