Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
What's the usecase for mutable records in C#9?

C# 9 adds records, finally! I've been waiting forever for this, it's supergreat! But I'm wondering what the point of having a record with { get; set; } is? It seems like records should be immutable and use { get; init; } for all their properties. Maybe I'm just too used to working with immutable data, but I don't get the point of mutable records. It just seems like it increases the likelihood of bugs in the code. Am I missing a really obvious and useful usecase?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

To start with: a record is just a quick, short notation to declare a class with a couple of useful features automatically added for free - but the end result is still a class like any other. It is syntactic sugar, with actually two flavours.

The extra-short positional syntax makes all properties init-only:

record Person(string FirstName, string LastName);

The less-short nominal syntax makes the developer responsible to specify set or init for each property:

record Person
{
    public string FirstName { get; set; }
    public string LastName { get; init; }
}

The reason behind offering both notations is that there is no 'one-size-fits-all'. Nominal syntax allows to create a class with very little code, with specific custom (im)mutability, and still get a copy constructor + cloning + hashing + comparison/equality for free.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!