Nello script #391 abbiamo visto come inizializzare il valore di una proprietà sfruttando la nuova sintassi di C# 6. Nello script, la proprietà era sia in lettura che scrittura e il suo valore era impostato con un valore statico. A volte queste condizioni non possono essere soddisfatte, perchè la proprietà deve essere in sola lettura e il valore da assegnare deve essere calcolato a run time. C# 6 permette di impostare a runtime il valore di una proprietà in sola lettura a patto che il valore sia impostato nel costruttore come mostrato nell'esempio.
public class Person
{
public string FullName { get; }
public Person(string firstName, string lastName)
{
FullName = $"{firstName} {lastName}";
}
}Fino a C# 5 un risultato simile era ottenibile usando o campi readonly o proprietà con setter privato. Nel primo caso il problema consiste nel fatto che i campi readonly non possono essere messi in binding, mentre nel secondo caso il problema è che avere un setter permette di modificare la proprietà e questo non dovrebbe essere possibile dopo l'inizializzazione. Con C# 6 questi problemi sono superati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare noopener e noreferrer nei link HTML
Personalizzare le pagine di errore su Azure App Service
Supporto semplificato per le left join in Entity Framework 10
Evidenziare una porzione di testo in un pagina dopo una navigazione
Gestire trasferimenti cloud con Azure Storage Mover
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Dallo sviluppo locale ad Azure con .NET Aspire
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Effettuare un clone parziale di un repository di GitHub
Importare un servizio esterno in .NET Aspire




