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.