Aggiungere la deconstruction a una classe in C#

di Stefano Mostarda, in .NET Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi