La versione 9 di C# ha introdotto i record; classi di cui, una volta istanziate, non si possono modificare le proprietà. Quando il compilatore C# incontra un record e deve generarne il codice, questo genera una classe con proprietà in sola lettura e valorizzabili solo da costruttore. Il fatto che il compilatore generi una classe è uno dei limiti di C# 9, infatti esistono casi in cui sarebbe più corretto generare una struct, principalmente per motivi di performance.
Questa possibilità è stata introdotta con C# 10 semplicemente anteponendo la parola chiave record davanti a struct così come mostrato nell'esempio.
public record struct Person { public string FirstName { get; init; } public string LastName { get; init; } }
Volendo, possiamo utilizzare anche la versione più concisa dove dichiariamo direttamente le proprietà nel costruttore. In questo caso dobbiamo anche specificare la parola chiave readonly davanti a record.
public readonly record struct Product(string FirstName, string LastName);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare il flickering dei componenti nel prerender di Blazor 8
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Miglioramenti nell'accessibilità con Angular CDK
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Utilizzare gli snapshot con Azure File shares
Creare gruppi di client per Event Grid MQTT
Paginare i risultati con QuickGrid in Blazor
Usare lo spread operator con i collection initializer in C#
Evitare la command injection in un workflow di GitHub
Usare il versioning con i controller di ASP.NET Core Web API
Utilizzare Tailwind CSS all'interno di React: primi componenti