Gli inizializzatori di oggetti e di collezioni permettono allo sviluppatore di assegnare un particolare valore per ogni proprietà accessibile durante la creazione di una nuova istanza di un oggetto (sia questo un normale oggetto che una collezione) senza dover richiamare il costruttore di default.
Assegnare valori alle proprietà senza passare per il costruttore
Author peppe = new Author { Name = "Peppe", Surname = "Marchi" };
La sintassi che ci permette di valorizzare le proprietà è molto simile a quella utilizzata per i tipi anonimi, con la differenza che qui non usiamo la keyword "var" (che è comunque utilizzabile al posto della dichiarazione del tipo "Author") e possiamo vedere e modificare il codice della classe istanziata.
Allo stesso modo, è possibile creare delle nuove collezioni di oggetti, valorizzandone il contenuto in fase di creazione della nuova istanza.
Assegnare valori agli enumerati
List<int> numeri = new List<int> { 0, 1, 2, 3 };
List<Author> autori = new List<Author> {
new Author {Name = "Peppe", Surname="Marchi"},
new Author {Name = "Giuseppe", Surname="Marchi"},
};
Per utilizzare questa tecnica sulle collezioni di oggetti è d'obbligo che queste implementino l'interfaccia IEnumerable. Tramite questa nuova tecnica di inizializzazione, non siamo obbligati a dover richiamare il metodo Add() per ogni nuovo elemento che vogliamo aggiungere alla collezione.
Gli Extension Methods sono un'importante novità per quanto riguarda la programmazione orientata agli oggetti, in quanto permettono di aggiungere dei metodi personalizzati a tutte le classi dichiarate come "selead", quindi non estendibili.
Nei linguaggi di programmazione ad oggetti, l'ereditarietà risulta uno strumento molto valido, ma spesso anche un'arma a doppio taglio, in quanto può essere difficile sviluppare delle classi da cui ereditare, senza intaccare la logica vera e propria della classe stessa. È per questo motivo che la maggior parte delle classi del .NET Framework sono dichiarate come "selead", così come tutti i tipi primitivi e derivati.
Attraverso l'utilizzo degli Extension Methods però, abbiamo la possibilità di aggiungere delle funzionalità personalizzate a quei tipi di oggetti, senza dover creare delle classi figlie (il che risulta comunque impossibile).
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |