mario.deghetto

Visual Basic & .NET
posts - 332, comments - 79, trackbacks - 0

VB 2010: continuazione implicita di linea

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
  1.     Dim lungaStringaDiTesto As String = _
  2.       "Questa e' una lunga stringa di testo, " & _
  3.       "cosi' lunga che non ci sta in una sola " & _
  4.       "riga. Se voglio mantenere una buona " & _
  5.       "leggibilita' devo andare a capo spesso " & _
  6.       "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
  1.     Dim lungaStringaDiTesto As String =
  2.       "Questa e' una lunga stringa di testo, " &
  3.       "cosi' lunga che non ci sta in una sola " &
  4.       "riga. Se voglio mantenere una buona " &
  5.       "leggibilita' devo andare a capo spesso " &
  6.       "e posso NON utilizzare l'underscore."

 

oppure come questo:

Visual Basic
  1.     Dim linguaggi As New List(Of String) From
  2.     {
  3.       "Visual Basic",
  4.       "C#",
  5.       "C++",
  6.       "F#"
  7.     }

 

Esistono alcune eccezioni: una di queste riguarda la parola riservata Handles, come nel seguente esempio.

Visual Basic
  1.   ' cosi' funziona:
  2.   Private Sub Form1_Load(
  3.     ByVal sender As System.Object,
  4.     ByVal e As System.EventArgs) _
  5.     Handles MyBase.Load
  6.   End Sub
  7.  
  8.   ' cosi' NON funziona:
  9.   Private Sub Form2_Load(
  10.   ByVal sender As System.Object,
  11.   ByVal e As System.EventArgs)
  12.     Handles MyBase.Load
  13.   End Sub

 

L'utilità di questa modifica diventa molto più evidente nelle query LINQ o in istruzioni LINQ to XML:

Visual Basic
  1.     ' query LINQ:
  2.     Dim query =
  3.         From proc In Process.GetProcesses.AsEnumerable()
  4.         Where (proc.ProcessName.StartsWith("SQL"))
  5.     Select proc
  6.  
  7.     ' LINQ to XML:
  8.     Dim doc =
  9.     <?xml version="1.0"?>
  10.     <Processes>
  11.       <%= From proc In query
  12.         Select
  13.         <Process>
  14.           <Name <%= proc.ProcessName %>/>
  15.         </Process>
  16.       %>
  17.     </Processes>

 

Nel primo caso c'è una forte somiglianza con una normale istruzione SQL, nel secondo caso si ottiene una leggibilità del codice senza precedenti.

Print | posted on domenica 26 giugno 2011 8.31 |

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 7 and type the answer here:

Powered by: