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
Configurare policy CORS in Azure Container Apps
.NET Conference Italia 2023
Utilizzare la libreria Benchmark.NET per misurare le performance
Load test di ASP.NET Core con k6
Utilizzare database e servizi con gli add-on di Container App
Usare il versioning con i controller di ASP.NET Core Web API
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Routing statico e PreRendering in una Blazor Web App
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Reactive form tipizzati con modellazione del FormBuilder in Angular
Effettuare delete massive con Entity Framework Core 7
Effettuare il download di un file via FTP con la libreria FluentFTP di .NET