【问题标题】:Is there an opposite of the underscore( _ ) line continuation?是否有下划线(_)行继续的相反?
【发布时间】:2016-01-22 15:30:58
【问题描述】:

下划线允许我做这样的事情

    Public Sub derp _
        (x As Integer)
        MsgBox(x)
    End Sub

这有什么相反的符号吗?例如,如果是¯那么我可以这样做

Public Sub derp(x as Integer) ¯ Msgbox(x) ¯ End Sub

【问题讨论】:

  • 如果这对你很重要,也许你应该考虑使用 C#。
  • 对于某些事情你可以这样做.....例如,“If myBool Then doStuff”,而不是使用多行和 EndIf。
  • 其实现在很少有地方需要用到下划线了。在您这样做的情况下,您可能不应该 - 就像在您的示例中一样

标签: .net vb.net visual-studio syntax compilation


【解决方案1】:

您可以尝试使用冒号。但是你不能把函数/子体和函数/子的声明放在同一行。

Public Sub derp(x As Integer)
    MsgBox(x) : MsgBox("Hello, world") : End Sub

您也可以尝试使用操作委托。但是如果你想把它们放在 1 行中,它只能有 1 条语句。

Public herp As Action(Of Integer) = Sub(x) MsgBox(x)

如果你想要多行,你可以这样写(如果你愿意,你可以使用冒号):

Public herp As Action(Of Integer) = Sub(x)
                                        MsgBox(x)
                                        MsgBox("Hello, world")
                                    End Sub

如果您想返回一个值而不是 Action 委托,请使用 Func 委托。

【讨论】:

    【解决方案2】:

    当然——冒号:

    Public Sub derp(x as Integer) : MsgBox(x) : End Sub
    

    但是不要滥用这个。编译器不按行收费。

    我唯一一次使用它是在建立继承关系时:

    Public Class Rectangle : Inherits Shape
       ...
    End Class
    

    不知何故,这对我来说似乎比将Inherits 放在类主体中更合乎逻辑。你甚至不能把它归咎于我的 C++ 根源,因为 VB 是我的第一语言。

    【讨论】:

    • 我现在正在精神上尝试将这个问题/答案对构建为三元运算。
    • 我知道冒号,但 afaik 它只适用于内部位(如分配变量或调用函数)而不是外部,您的示例行给我“方法主体的第一个语句不能在与方法声明相同的行。”
    • 这也是我唯一使用冒号的地方。只是看起来不错。
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多