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
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Creare una libreria CSS universale - Rotazione degli elementi
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Eseguire script pre e post esecuzione di un workflow di GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Migrare una service connection a workload identity federation in Azure DevOps
Creare un webhook in Azure DevOps
Effettuare il binding di date in Blazor
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento