In questo grafico sulle caratteristiche che sono dentro o fuori dalla prossima versione di Roslyn (in particolare, per C #), i costruttori primari sono fuori, ma gli inizializzatori di proprietà auto sono a.
Il miglior caso d'uso che ho visto per gli inizializzatori delle proprietà automatiche li sta usando insieme ai costruttori primari, cioè:
public class Customer(string first, string last)
{
public string First { get; } = first;
public string Last { get; } = last;
}
Tuttavia, senza il costruttore principale, non vedo un buon use case per l'inizializzazione della proprietà automatica che non può essere eseguita solo con un normale backing field, in questo modo:
public class Customer
{
private string _first = "Foo";
public string First { get { return _first; } };
}
Che senso ha utilizzare un inizializzatore della proprietà automatica senza la funzionalità di costruttore primaria?