sabato 6 luglio 2024

C# inizializzare una classe per valorizzare una proprietà di sola lettura

In questa serie di esempi di codice, scopriamo come nelle novità di .Net e del linguaggio di programmazione C#, possiamo impostare una proprietà di sola lettura passando i valori al costruttore della classe.

Esempio 1:
Supponiamo di avere una classe con proprietà di sola lettura (get) e vogliamo impostare del valore.

Classe:
    public class Persona
    {
        public Persona(string nome, string cognome)
        {
            Nome = nome;
            Cognome = cognome;
        }

        public string Nome { get; }
        public string Cognome { get; }
    }

Utilizzo:
 Persona  persona = new Persona ("Emanuele", "Mattei");
 MessageBox.Show(persona.Nome + " " + persona.Cognome  );

Se impostiamo una delle proprietà (Nome o Cognome) il compilatore ci visualizzerà un messaggio di errore come riportato in figura 1.

Figura 1 - L'errore del compilatore

Esempio 2:
Possiamo passare il valore anche in maniera abbreviata direttamente nella definizione di classe.
Di seguito il frammento di codice.

Classe:
    public class Persona2(string Nome, string Cognome)
    {
        public string Nome { get; } = Nome;
        public string Cognome { get; } = Cognome;
    }

Utilizzo:
 Persona2  persona = new("Emanuele", "Mattei");
 MessageBox.Show(persona.Nome + " " + persona.Cognome  );

Esempio 3:
Un ultimo esempio sull'utilizzo delle classi con proprietà di sola lettura, che vengono valorizzate durante l'inizializzazione della classe.


Classe:
   public class Persona3
   {
       private readonly string _Nome;
       private readonly string _Cognome;

       public Persona3(string nome, string cognome)
       {
           _Nome = nome;
           _Cognome = cognome;
       }

       public string NomeCompleto => $"{_Nome} {_Cognome}";

      

Utilizzo:
 Persona3  persona = new("Emanuele", "Mattei");
 MessageBox.Show(persona.NomeCompleto  );

Nessun commento: