domenica 7 luglio 2024

C# utilizzo di Deconstruct

Per chi ha già utilizzato o conosce le tupla https://emanuelemattei.blogspot.com/2022/02/c-tupla-in-net-5.html non avrà difficoltà nel capire l'utilizzo di "Deconstruct", il quale ci restituisce una serie di valori dopo aver inizializzato la nostra classe.

Vediamo alcuni esempi di codice.

Classe:
    public class AnagraficaPersona(string nome, string cognome)
    {


        public void Deconstruct(out string NomeCompleto, out int Lunghezzza)
        {
            NomeCompleto = nome + " " + cognome;
            Lunghezzza = nome.Length + cognome.Length;

        }



    }

Utilizzo:
 var (NomeCompleto, totaleLettere) = new AnagraficaPersona("Emanuele", "Mattei");
 MessageBox.Show(NomeCompleto + " " + totaleLettere.ToString());


Vengono restituite una serie di valori dopo aver inizializzato la classe.

Possiamo avere più "Deconstruct" come riportato qui di seguito.

Classe:
 public class AnagraficaPersona2 
 {
     private string Nome { get; set; } 
     private string Cognome { get; set; } 
     public  AnagraficaPersona2(string nome, string cognome)
     { 
         Nome = nome; 
         Cognome = cognome;
     }
     
     public void Deconstruct(out string NomeCompleto)
     {
         NomeCompleto = Nome + " " + Cognome;

     }

     public void Deconstruct(out string NomeCompleto, out int Lunghezzza)
     {
         NomeCompleto = Nome + " " + Cognome;
         Lunghezzza = Nome.Length + Cognome.Length;

     }

    

 }


Utilizzo:
  var ana = new AnagraficaPersona2("Emanuele", "Mattei");
  var (NomeCompleto, _) = ana;
  MessageBox.Show(NomeCompleto);


Nessun commento: