Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Ma cosa c'è dietro le auto-implemented properties di VB 2010?

Come sapete, una delle più importanti novità che faranno parte del linguaggio Visual Basic 2010 è costituita dalle auto-implemented properties, ossia dalla possibilità di dichiarare ed utilizzare una proprietà semplicemente utilizzando la keyword Property senza dover prevedere campi ed esplicitare getter e setter. Ne abbiamo parlato sia in questo blog, ma soprattutto in questo articolo su VB T&T e in questo screencast.

Vi siete mai chiesti (ammesso che la cosa vi interessi :D) cosa succede dietro le scene? Beh, a me è capitata la necessità di dover scrivere una proprietà secondo il vecchio stile e, partendo da una auto-implemented property, avevo iniziato a scrivere un campo privato prima di esplicitare il blocco della proprietà. Immaginate che la proprietà di partenza fosse questa:

Public Property Name As String

e che successivamente il campo dichiarato fosse il seguente:

Private _name As String

Risultato:

Come potete osservare, il compilatore ci avvisa che non è possibile dichiarare quel campo, perché in conflitto con analogo campo dichiarato dal compilatore stesso, dietro le scene, a supporto dell'auto-implemented property; in parole povere, il compilatore prende l'identificatore della nostra proprietà, gli aggiunge un underscore e lo assegna ad un campo privato che funge da supporto. Nice :-) Notare come questo accada nei confronti di tipi built-in come di quelli personalizzati.

Se vi serve, come nel mio caso, implementare una proprietà old-style, ignorate il messaggio ed aggiungete un End Property nella riga sottostante la dichiarazione di proprietà ed avvaletevi di IntelliSense (visto che si offre volontario!) per aggiungere in modo esplicito Get e Set.

Abbiamo così scoperto come il compilatore VB si occupa di fornire accesso alle auto-implemented properties in Visual Basic 2010.

Alessandro

Print | posted on martedì 11 agosto 2009 01:39 | Filed Under [ Visual Basic Visual Studio 2010 ]

Powered by:
Powered By Subtext Powered By ASP.NET