Tra le novità sintattiche di Visual Basic 2008, ne troviamo una definita Object Initialization Expression e che riguarda l'inizializzazione degli oggetti nel momento in cui vengono dichiarati, utilizzando la keyword With e una coppia di parentesi graffe. Vediamo un piccolo esempio pratico. Considerate la seguente, banalissima classe Person, che espone due proprietà nome e cognome:
Class Person
Private _name As String
Private _surName As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Public Property SurName() As String
Get
Return _surName
End Get
Set(ByVal value As String)
_surName = value
End Set
End Property
End Class
Quando vado a istanziare l'oggetto, in Visual Basic 2008 posso usare la seguente sintassi:
'Object Initialization Expression
Dim p As New Person With {.Name = "Alessandro", .SurName = "Del Sole"}
In VB 2005 avrei dovuto scrivere, invece:
Dim p As New Person
With p
.Name = "Alessandro"
.SurName = "Del Sole"
End With
In questo modo si risparmia qualche riga di codice e, a seconda del numero di proprietà o dello scopo per il quale è definito l'oggetto, si può ottenere anche codice più ordinato.
Alessandro