Una delle caratteristiche più amate-odiate dai programmatori VB è il carattere underscore ("_"), cioè il carattere che permette di andare a capo in una istruzione. Per esempio:
Visual Basic
- Dim lungaStringaDiTesto As String = _
- "Questa e' una lunga stringa di testo, " & _
- "cosi' lunga che non ci sta in una sola " & _
- "riga. Se voglio mantenere una buona " & _
- "leggibilita' devo andare a capo spesso " & _
- "e devo utilizzare l'underscore."
Finalmente possiamo tralasciare questo carattere e scrivere codice come questo (speriamo che prima o poi si possa tralasciare anche il carattere &):
Visual Basic
- Dim lungaStringaDiTesto As String =
- "Questa e' una lunga stringa di testo, " &
- "cosi' lunga che non ci sta in una sola " &
- "riga. Se voglio mantenere una buona " &
- "leggibilita' devo andare a capo spesso " &
- "e posso NON utilizzare l'underscore."
oppure come questo:
Visual Basic
- Dim linguaggi As New List(Of String) From
- {
- "Visual Basic",
- "C#",
- "C++",
- "F#"
- }
Esistono alcune eccezioni: una di queste riguarda la parola riservata Handles, come nel seguente esempio.
Visual Basic
- ' cosi' funziona:
- Private Sub Form1_Load(
- ByVal sender As System.Object,
- ByVal e As System.EventArgs) _
- Handles MyBase.Load
- End Sub
-
- ' cosi' NON funziona:
- Private Sub Form2_Load(
- ByVal sender As System.Object,
- ByVal e As System.EventArgs)
- Handles MyBase.Load
- End Sub
L'utilità di questa modifica diventa molto più evidente nelle query LINQ o in istruzioni LINQ to XML:
Visual Basic
- ' query LINQ:
- Dim query =
- From proc In Process.GetProcesses.AsEnumerable()
- Where (proc.ProcessName.StartsWith("SQL"))
- Select proc
-
- ' LINQ to XML:
- Dim doc =
- <?xml version="1.0"?>
- <Processes>
- <%= From proc In query
- Select
- <Process>
- <Name <%= proc.ProcessName %>/>
- </Process>
- %>
- </Processes>
Nel primo caso c'è una forte somiglianza con una normale istruzione SQL, nel secondo caso si ottiene una leggibilità del codice senza precedenti.