Creare un'istanza di un record partendo da un altro record in C#

di Stefano Mostarda, in .NET Framework,

Oltre alla sintassi, quello che più caratterizza un record rispetto a una classe è il fatto che le proprietà sono immutabili. Tuttavia, esistono casi in cui abbiamo la necessità di modificare il valore di alcune proprietà e in questi casi l'unica possibilità è quella di creare una nuova istanza partendo da quella originale modificandone i dati. Se un record ha molte proprietà quest'operazione rischia di diventare tediosa e può facilmente portare ad errori. Fortunatamente, C# 9 ha introdotto anche una nuova parola chiave: with. Grazie a questa nuova parola chiave possiamo crare una nuova istanza di un record partendo da una esistente e modificarne solo i valori necessari.

public record Person(string FirstName, string LastName, DateTime BirthDate, string Address, decimal Salary);

var p1 = new Person("Stefano", "Mostarda", new DateTime(1979, 1, 1), "Via del corso 1, Roma", 1000);
var p2 = p1 with  { Address = "Piazza navona 40", Salary = 2000 });

In questo esempio dichiariamo il record Person e successivamente ne creiamo un'istanza (p1). A questo punto viene usata l'istanza p1 come base per creare una nuova istanza (p2) della quale vengono modificati le proprietà Address e Salary.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi