Utilizzare le proprietà Init-only per inizializzare una proprietà in C# 9

di Stefano Mostarda, in .NET Framework,

Quando creiamo una classe, spesso capita che alcune proprietà debbano essere valorizzate solamente in fase di inizializzazione. In questi casi creiamo le proprietà in sola lettura (cioè con solo il getter) e passiamo il valore iniziale al costruttore che imposta poi la variabile (le proprietà con solo getter possono essere inizializzate dal costruttore). Questa è una buona regola di programmazione, ma con la versione 9 di C# possiamo aggiungere una nuova opzione per inizializzare la variabile aggiungendo init nella dichiarazione della proprietà. Con init, la proprietà diventa valorizzabile non solamente nel costruttore, ma anche in un object initializer.

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

var p = new Person 
{
  FirstName = "Stefano", //ok
  LastName = "Mostarda" //ok
};

p.FirstName = "Marco"; //errore di compilazione

L'utilizzo di init comporta la capacità di impostare una proprietà anche al di fuori del costruttore. Se all'interno del costruttore facciamo dei controlli di validità prima di impostare la proprietà, questi vengono saltati. Di conseguenza è bene valutare l'impatto sul codice esistente prima di utilizzare questa nuova parola chiave.

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