PDC 2008 : Visual Basic 10 (VB10) et les "Auto Properties"

En Visual Basic, lorsqu'on veut déclarer une propriété dans une classe, voici la syntaxe habituellement utilisée :

Public Class Client

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

    Private internePrénom As String
Public Property Prénom() As String
Get
Return internePrénom
End Get
Set(ByVal value As String)
internePrénom = value
End Set
End Property

End Class

Bonne nouvelle, à partir de Visual Basic 10, voici que, comme en C#, les "Auto Properties" sont maintenant implémentées ! Le code précédent se résume désormais à :

Public Class Client

    Public Property Nom As String
Public Property Prénom As String

End Class

Evidemment, à la compilation, le compilateur VB (vbc.exe) va émettre pour vous le code que vous n'avez plus à écrire :

.class public auto ansi Client
extends [mscorlib]System.Object
{
.method public specialname rtspecialname instance void .ctor() cil managed
{
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor()
.maxstack 8
L_0000: ldarg.0
L_0001: call instance void [mscorlib]System.Object::.ctor()
L_0006: nop
L_0007: nop
L_0008: ret
}

    .property instance string Nom
{
.get instance string Demos_VB10.Client::get_Nom()
.set instance void Demos_VB10.Client::set_Nom(string)
}

    .property instance string Prénom
{
.get instance string Demos_VB10.Client::get_Prénom()
.set instance void Demos_VB10.Client::set_Prénom(string)
}

    .field private string _Nom
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
}

    .field private string _Prénom
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
}
}