2016-01-22 12 views
5

La sottolineatura mi permette di fare cose come questaC'è un opposto della continuazione della linea di sottolineatura (_)?

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

C'è qualche notazione di fronte a questo? Ad esempio, se fosse ¯ poi ho potuto fare

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

Forse dovresti prendere in considerazione l'uso di C# se è importante per te. –

+0

Per alcune cose è possibile farlo ..... ad esempio, "Se myBool Then doStuff", invece di utilizzare più righe e EndIf. – GendoIkari

+2

In realtà ci sono pochissimi posti in cui è necessario utilizzare il carattere di sottolineatura in questi giorni. Nei casi in cui lo fai, probabilmente non dovresti - come nell'esempio –

risposta

0

Sicuro-colon:

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

Ma non abusare di questo. Il compilatore non si carica dalla linea.

Circa l'unica volta che lo uso è quando sto stabilire una relazione di ereditarietà:

Public Class Rectangle : Inherits Shape 
    ... 
End Class 

In qualche modo, che sembra solo più logico per me che mettere il Inherits nel corpo della classe. E non puoi nemmeno biasimarlo sulle mie radici C++, perché VB era la mia prima lingua.

+0

Ora sto cercando mentalmente di costruire questa coppia domanda/risposta come un'operazione ternaria. – Draco18s

+4

Conosco il colon, ma a patto che funzioni solo sui bit interni (come l'assegnazione di variabili o funzioni di chiamata) ma non all'esterno, la linea di esempio mi dà "La prima affermazione di un metodo non può essere sulla stessa linea della dichiarazione del metodo. " – user81993

+0

Questo è l'unico posto in cui utilizzo anche due punti. Sembra solo a destra. –

1

Puoi provare a usare i due punti. Ma non è possibile inserire la funzione/sub body nella stessa riga della dichiarazione della funzione/sub.

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

È inoltre possibile provare a utilizzare un delegato di azione. Ma può avere solo 1 affermazione se vuoi metterli in 1 linea.

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

Se si desidera avere più righe, si scrive in questo modo (è possibile utilizzare i due punti, se si vuole):

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

Usa Funz delegato se si vuole restituire un valore al posto di Delegato all'azione