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

VB 2008: i tipi anonimi

Una interessante novità del .NET Framework 3.5 è costituita dai tipi anonimi. In pratica, quando si istanzia un oggetto, non se ne specifica il tipo ma è possibile popolarlo con elementi di proprio interesse. Da non confondere con il concetto di Local Type Inference (in cui il tipo di un oggetto è determinato automaticamente dal compilatore), i tipi anonimi trovano il loro naturale utilizzo nelle query expression di LINQ. Vediamo un paio di esempi in Visual Basic 2008. Il seguente frammento:

        'Anonymous type

        Dim tipoAnonimo1 = New With {.Name = "Alessandro", .Age = 30}

istanzia un oggetto tipoAnonimo1 che è di tipo anonimo. Come potete osservare, dopo la parola chiave New non è specificato il tipo, tuttavia l'oggetto viene popolato con due membri, rispettivamente di tipo String e Integer (in questo caso abbiamo utilizzato la tecnica dell'Object Initialization Expression di cui abbiamo parlato qui). Tali membri, in realtà, assumono la forma di proprietà classiche e almeno una proprietà è obbligatoria. E' anche possibile fare in modo che le proprietà dei tipi anonimi siano a sola lettura, anteponendo la nuova parola chiave Key all'identificatore del membro come nel seguente snippet:

        'Anonymous type con proprietà a sola lettura

        Dim tipoAnonimo2 = New With {Key .Name = "Alessandro", Key .Age = 30}

Non è superfluo precisare che i tipi anonimi hanno visibilità all'interno del membro in cui vengono definiti. Un possibile work-around è quello di impostare Option Strict su Off e passare il tipo anonimo a un metodo che riceve argomenti di tipo Object a discapito, ovviamente, di una tecnica di programmazione più corretta, senza dimenticare, come sopra anticipato, che i tipi anonimi hanno principale utilizzo in LINQ pertanto difficilmente si avrà necessità di utilizzarli a livello di classe o modulo.

Alessandro

 

Print | posted on mercoledì 2 gennaio 2008 17:27 | Filed Under [ Visual Basic ]

Powered by:
Powered By Subtext Powered By ASP.NET