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
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Ottimizzare i costi con Smart tier in Azure Blob Storage
Analizzare il contenuto di una issue con GitHub Models e AI
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Utilizzare le direttive più importanti in una file based app .NET
Creare una cache temporanea in JavaScript
Testare le API di Azure Resource Manager con API Playground
Creare un extension method per applicare condizionalmente una Where in una query LINQ per Entity Framework
Integrare modelli AI in un workflow di GitHub
Operazioni tra insiemi di array in Javascript
Evitare la compressione degli artefatti in un workflow di GitHub
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina


