如何将我的VB.NET方法格式化为更像C#方法?

时间:2013-07-31 03:21:46

标签: vb.net visual-studio-2012 formatting

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

3 个答案:

答案 0 :(得分:3)

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

相反,拥抱VB的风格。事实上,你正确地观察到当你在第一个参数之前尝试破解时结果很奇怪。但如果你在之后做了,那么一切都有意义:

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

您将看到IDE支持这种缩进模式始终,特别是在方法调用和LINQ表达式中。

现在,就个人偏好而言,我也更喜欢C#将所有后续行缩进一个缩进宽度的惯例,但我们就这样了。

答案 1 :(得分:2)

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

工作在VB10(VS2010版本)中完成,使得下划线可选。一个名为“隐式线延续”的功能。你不能随意跳过下划线,你必须在正确的地方打破线。它在this MSDN page中很好地记录,向下滚动到隐式线连续部分。

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

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

答案 2 :(得分: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 DocumentationThis也很有用。


修改

看起来,自Visual Studio 2010以来,编译器会自动接受一些没有_字符的换行符。请参阅MSDN中的Implicit Line Continuation