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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.