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
Performance in .NET 6
Dichiarare una struct come record in C#
Semplificare il debug delle query generate da Entity Framework Core
Controllare lo stato di un servizio gRPC in ASP.NET Core tramite Health Check
Semplificare la dichiarazione del namespace in C#
Le novità di Entity Framework Core 6
Leggere il valore di un header della richiesta in ASP.NET Core 6
Creare un'istanza di Azure Service Bus con ARM
Introduzione a Azure Container Apps
Eseguire uno scroll all'interno di una pagina Blazor
Utilizzare .NET 6 con le Azure Function
Semplificare con un extension method l'aggiunta di filtri a run time nelle query LINQ