A volte vorrei dichiarare una proprietà come questa:
public string Name { get; readonly set; }
Mi chiedo se qualcuno vede una ragione per cui una tale sintassi non dovrebbe esistere. Credo che poiché è un sottoinsieme di "get; private set;", potrebbe solo rendere il codice più solido.
La mia sensazione è che questi setter sarebbero estremamente amichevoli, ma ovviamente sono più interessato a sentire le tue opinioni che le mie, quindi cosa ne pensi tu ?
Sono a conoscenza dei campi "public readonly", ma quelli non sono interfacciati, quindi non li considero nemmeno. Detto questo, non mi dispiace se li porti nella discussione
Modifica
Mi rendo conto di leggere i commenti che forse la mia idea è un po 'confusa. Lo scopo ultimo di questa nuova sintassi è di avere una sintassi della proprietà automatica che specifica che il campo privato di backup deve essere in sola lettura. Sostanzialmente dichiarando una proprietà usando la mia ipotetica sintassi
public string Name { get; readonly set; }
sarebbe interpretato da C # come:
private readonly string name;
public string Name
{
get
{
return this.name;
}
}
E la ragione per cui dico che sarebbe DI friendly è che quando ci affidiamo pesantemente all'iniezione di un costruttore, credo che sia una buona pratica dichiarare i nostri campi iniettati come readonly.