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
Gestione dei nomi con le regole @layer in CSS
Supportare la crittografia di ASP.NET Core con Azure Container App
Anonimizzare i dati sensibili nei log di Azure Front Door
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Utilizzare Containers in .NET Aspire
Loggare le query più lente con Entity Framework
Eliminare record doppi in Sql Server
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Recuperare le subissue e il loro stato di completamento in GitHub
Creare una libreria CSS universale: Cards
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT