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
Migrare da Azure DevOps a GitHub
Utilizzare la keyword with in JavaScript
Forzare la lingua dell'interfaccia di Azure Active Directory B2C
Le novità di Entity Framework Core 6
Le novità di C# 10
Serializzare e deserializzare un tipo DateOnly con System.Text.Json
Gestire il polimorfismo nella serializzazione usando un converter con System.Text.Json
Filtrare le chiamate HTTP ad un App Service in base al servizio Azure
Introduzione al nuovo tipo DateOnly di .NET
Effettuare una chiamata HTTP in Angular usando le promise e RxJs 7
Configuration strongly typed anche per singleton con IOptionsMonitor in ASP.NET Core
Ottimizzare il codice JavaScript con i Shorthand Patterns - seconda parte