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
Creazione di componenti personalizzati in React.js con Tailwind CSS
Gestione degli stili CSS con le regole @layer
Utilizzare Container Queries nominali
Utilizzare Azure AI Studio per testare i modelli AI
Generare velocemente pagine CRUD in Blazor con QuickGrid
Aggiornare a .NET 9 su Azure App Service
Path addizionali per gli asset in ASP.NET Core MVC
Cambiare la chiave di partizionamento di Azure Cosmos DB
Usare lo spread operator con i collection initializer in C#
Applicare un filtro per recuperare alcune issue di GitHub
Utilizzare un service principal per accedere a Azure Container Registry
Hosting di componenti WebAssembly in un'applicazione Blazor static