C# 6.0: Inizializzazione delle proprietà automatiche (it-IT)
**
**
Inizializzazione delle proprietà automatiche
Le proprietà automatiche di C# (disponibili dalla versione 3.0 del linguaggio), dette anche auto-property, cioè quelle implementate con dei rami get e set vuoti, permettono di risparmiare il codice necessario alla scrittura di un campo privato.
Con C# 6 è possibile inizializzare tali proprietà direttamente in fase di dichiarazione, evitando appunto l’uso di un campo, oppure di farlo nel costruttore.
Scriviamo una classe Persona, con delle proprietà automatiche:
class Persona
{
public string Nome { get; set; }
public string Cognome { get; set; };
}
Per inizializzarle, basta aggiungere una semplice assegnazione:
class Persona
{
public string Nome { get; set; } = "Antonio";
public string Cognome { get; set; } ="Pelleriti";
}
Per provarlo basta creare una istanza della classe Persona e farsi stampare i valori delle proprietà.
Tecnicamente, l’inizializzatore non fa altro che impostare il valore del backing field (cioè del campo privato) generato dal compilatore.
Fra le cose a cui prestare attenzione, si noti che non si può usare la keyword this, perché l’assegnazione del valore avverrà prima che l’oggetto sia stato costruito, e quindi this non esiste ancora.
**
**
Proprietà di sola lettura.
Le proprietà automatiche possono ora essere anche dichiarate senza il ramo set, inizializzandone il valore allo stesso modo:
public int IDPersona { get; } = 1;
in questo caso il backing field sarà dichiarato come read-only e quindi potrà essere inizializzato.
L’altra modalità permessa per inizializzare una proprietà a sola lettura è quella di farlo nel costruttore:
public DateTime DataNascita { get; }
public Persona()
{
DataNascita = DateTime.Now;
}
Naturalmente è possibile inizializzare la proprietà get anche tramite un valore passato come argomento al costruttore:
public Persona(DateTime dt)
{
DataNascita = dt;
}
Impostare la versione di C#
In Visual Studio 2015 è possibile impostare la versione di C# da usare per la compilazione. Aprendo le proprietà del progetto, quindi andando alla sezione Build e poi cliccando su Advanced, apparirà la finestra seguente:
In generale potete verificare che le funzionalità di inizializzazione delle proprietà automatiche non sono presenti compilando con C# 5 o precedenti.
Nel caso degli esempi precedenti vedreste degli errori che indicano esplicitamente che le caratteristiche usate non sono disponibili e che è necessario usare la versione 6.
Altre risorse.
Altre risorse di sviluppo o per professionisti IT disponibili nella pagina Articoli Italiani su Technet Wiki.