Le novità di C# 6

di Cristian Civera, in .NET Framework 4.6,

Con l'uscita di Visual Studio 2015 è stato reso disponibile anche il compilatore che supporta C# 6. Questa nuova versione si contraddistingue dalle altre per il processo che ha portato alla definizione delle sue nuove caratteristiche. Gran parte dei framework che Microsoft usa e implementa sono stati resi open source attraverso GitHub, e tra questi rientra anche Roslyn, un compilatore multipiattaforma per C# e VB che supporta anche l'analisi del codice, sfruttato anche da Visual Studio stesso. Si tratta di un cambiamento piuttosto importante, perché significa che lo sviluppo delle tecnologie Microsoft non è più una scatola chiusa, ma piuttosto un sistema aperto anche a contributi esterni. A questo indirizzo, per esempio, possiamo vedere una serie di proposte che sono prese in considerazione per la successiva versione 7 del linguaggio.

Come ormai si verifica dalla versione 2, le nuove caratteristiche introdotte nel linguaggio non richiedono interventi al runtime o all'IL, ma sono solamente degli aiuti del compilatore, il quale genera del codice per noi e ne facilita la scrittura. Questo significa che C# 6 può essere usato con tutte le versioni del framework (salvo qualche caso), dalla 2 in poi. Il fatto di usare la versione del .NET Framework 4.6 serve solo per sfruttare le ultime caratteristiche introdotte nelle librerie stesse.

Vediamo quindi una per una le novità introdotte, tutte all'insegna per rendere più compatto e più leggibile il nostro codice.

Initializer per auto-property

Le auto-property sono proprietà che possiamo definire nelle nostre classi senza necessariamente definirne il body, perché semplicemente vogliamo che leggano e scrivano dal campo privato. Ora, oltre a definirle, possiamo assegnare un valore iniziale, come mostrato nell'esempio.

public class Test
{
  public string Name { get; set; } = "No name";

  public string Description { get; private set; } = GetDescription();

  private static string GetDescription()
  {
    return "Empty description";
  }
}

L'inizializzazione delle proprietà avviene come per i campi, cioè inserite prima del nostro codice che abbiamo inserito nel costruttore, perciò non possiamo riferirci all'istanza stessa, ma eventualmente appoggiarci a membri statici o a chiamate su altre classi. In ogni caso rimane comunque la possibilità di dichiarare la visibilità degli accessori get e set.

Getter-only auto-property

Sempre in tema di auto-property, è stata aggiunta la possibilità di specificare una auto-property che sia disponibile in sola lettura. In questo modo possiamo assegnare il valore di tale proprietà in due modi: attraverso l'initializer visto nel paragrafo precedente o nel costruttore.

public class Test
{
  public Test(string description)
  {
    Description = description;
  }

  public string Name { get; } = "No name";

  public string Description { get; }
}

La differenza rispetto all'accessorio set di tipo privato risiede nel fatto che il valore della proprietà non può essere cambiato al di fuori del costruttore. Questo perché di fatto, il campo privato generato è marcato con la parola chiave readonly.

5 pagine in totale: 1 2 3 4 5
Contenuti dell'articolo

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

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc