05/12/2008

Initialisation de collections en VB

Une des nouveautés annoncées pour VB10 concerne l'initialisation des collections.

Si nous prenons l'exemple d'une collection de type List(Of String) que nous remplissons avec les valeurs tata, titi, tutu et bien sûr le célèbre toto, jusqu'à maintenant nous devions écrire ce code:

Dim maListe As New List(Of String)
maListe.Add("tata")
maListe.Add("titi")
maListe.Add("tutu")
maListe.Add("toto")


Mais à partir de VB10, une nouvelle syntaxe équivalente mais plus courte à écrire sera disponible :

Dim maListe As New List(Of String) From {
"tata",
"titi",
"tutu",
"toto"
}

Et si on remplace notre collection List(Of String) par un Dictionnary(Of Int16, String), le code sera :

Dim monDico As New Dictionary(Of Int16, String) From {
{1,"tata"},
{2,"titi"},
{3,"tutu"},
{4,"toto"}
}


Note : Comme le montrent également ces deux exemples, les retours à la ligne ne seront plus obligatoirement marqués par des _

04/12/2008

Enfin les propriétés automatiques en VB

Cette année lors de sa conférence PDC, Microsoft a annoncé bon nombre d'évolutions pour la prochaine version de ses deux principaux langages dotnet : VB et C#

L'une de ces évolutions concerne l'intégration des propriétés automatiques (auto properties) dans Visual Basic 10.

Jusqu'à maintenant, pour créer une propriété dans une classe en VB, il fallait écrire quelque chose de ce genre :

Public Class Personne

Private m_Nom As String
Public Property Nom() As String
Get
Return m_Nom
End Get
Set(ByVal value As String)
m_Nom = value
End Set
End Property

Private m_Prenom As String
Public Property Prenom() As String
Get
Return m_Prenom
End Get
Set(ByVal value As String)
m_Prenom = value
End Set
End Property

End Class


Mais à partir de VB10, grâce aux propriétés automatiques, il suffira d'écrire ceci :

Public Class Personne

Public Property Nom As String
Public Property Prenom As String

End Class


Message personnel à mes étudiants (et aux autres !):
Notez que malgré la syntaxe plus courte, les commandes exécutées par le programme sont équivalentes : le compilateur rajoute pour vous le code que vous n'aviez pas tapé. Donc pour ceux qui pensent que raccourcir le code permet d'accélérer l'exécution du programme...... oubliez ce mythe !