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 PropertyPrivate 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 PropertyEnd 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 StringEnd 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()
}
}
Comments
Anonymous
November 02, 2008
The comment has been removedAnonymous
November 02, 2008
NB. It's also possible to have initializers on the auto-properties: Public Property Noms As New List(Of String) From {"Juliette", "Jacques", "Lucien"} Public Property Etats As IEnumerable(Of String) = {"france", "grande bretagne"} Public Property Size As Integer = 31Anonymous
November 02, 2008
Hi int19h, Is the following link a possible answer your question? http://blogs.msdn.com/vbteam/archive/2008/11/02/vb-2010-unveiled-at-pdc-2008-lisa-feigenbaum.aspxAnonymous
November 04, 2008
Yes, this is just what was needed, thank you!Anonymous
January 04, 2009
c'est tout cool toutes ces ameliorations. J ai pas vu pour la fonction yeld return si t as une info je suis preneur. merci