Records en C#
Semántica de valor en una línea: impresión, igualdad y copias con un cambio.
var current = new Semver(2, 1);
var next = current with { Minor = 2 };
Console.WriteLine(current); // un record se imprime solo
Console.WriteLine(next);
Console.WriteLine(current == new Semver(2, 1)); // y se comparan por valor
record Semver(int Major, int Minor)
{
public override string ToString() => $"v{Major}.{Minor}";
}
Cómo funciona
record Semver(int Major, int Minor)declara el tipo completo.withcopia el record y cambia solo lo que nombres.- Records con valores iguales son iguales; las clases compararían referencias.
Palabras clave y builtins usados aquí
intnewoverridepublicrecordstringvarwith
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 347
- Tokens
- 73
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 52 segundos.
Paso 4 de 4 en Clases y records; paso 21 de 29 en Fundamentos del lenguaje.