Interessante poter scrivere:

public class Person( string firstName, string lastName )
{
    public String FirstName{ get; set; } = firstName;
    public String LastName{ get; set; } = lastName;
}

Lo scopo è aumentare drasticamente la compattezza del codice in quei casi in cui praticamente scriveremmo solo plumbing, come nell’esempio di cui sopra. Possiamo quindi:

  • dichiarare 1 costruttore in-line con la dichiarazione della classe stessa;
  • assegnare dei valori di default alle proprietà auto-generate, in questo caso utilizzando i parametri del costruttore di cui sopra, che sono in scope;

Ovviamente possiamo anche:

public class Sample
{
    public Int32 Foo{ get; set; } = 10;
}

Quindi utilizzare anche dei valori costanti per inizializzare quello che dopo la passata del compilatore sarà il backing field della proprietà.

.m

Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura