Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

162
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda