Nello script #502 abbiamo visto come utilizzare la deconstruction con una tupla. In questo script invece vediamo come agiungere la deconstruction a una classe esistente così da poterne assegnare il valore delle proprietà direttamente a delle variabili.
Per aggiungere la deconstruction a una classe esistente dobbiamo creare il metodo Deconstruct che esprime solo parametri out e che nel corpo valorizza tali parametri. Questi parametri sono quelli che vengono utilizzati poi nella deconstructon.
Supponendo di avere una classe Person e di voler esporre il metodo Deconstruct con le proprietà FirstName e LastName, il codice da scrivere è quello del prossimo esempio.
public class Person { public string FirstName { get; set; } public string LastName { get; set; } public string City { get; set; } public DateTime DateOfBirth { get; set; } public void Deconstruct(out string firstname, out string lastname) { firstname = FirstName; lastname = LastName; } }
Se vogliamo utilizzare la deconstruction, il codice da scrivere è il seguente.
var p = new Person { FirstName = "Stefano", LastName = "Mostarda" }; var (firstName, lastName) = p;
Possiamo creare diversi overload del metodo Deconstruct e possiamo anche utilizzare il carattere di discard "_" se non vogliamo assegnareun determinato valore a una variabile.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Community Night@Basta!Italia on tour 2009 - Milano
- Real Code Day - Firenze
- Real Code Conference 4.0 - Firenze
- Windows Phone r8me - Roma
- Visual Studio 2008 Team Suite in RTM su MSDN Download
- Rilasciata la prima CTP del .NET Parallel Framework
- Annunciata la modalità di uscita di ADO.NET Entity Framework e dei Data Services