ExpertiDict

C# · Intermediário · Inglês · Técnico

record struct

/ˈrɛkɚd strʌkt/substantivo

Struct declarada como record struct, que ganha igualdade por valor, ToString e with; a forma posicional é mutável, e readonly record struct é imutável.

Onde usar

Bom para pequenos value objects em código quente, como coordenadas, com igualdade por valor sem alocar no heap. Em code review, prefira readonly record struct para evitar mutação acidental.

Em código

var a = new Coord(1, 2);
var b = a with { X = 5 };
Console.WriteLine(a.X + " " + b.X);   // 1 5
readonly record struct Coord(int X, int Y);

Exemplos

Use a readonly record struct for this small value object.

Use um readonly record struct para esse value object pequeno.

A record struct avoids a heap allocation.

Um record struct evita uma alocação no heap.

Cuidado

Não confunda com record class: aqui a variável guarda o valor, então as cópias são independentes e o default tem todos os campos zerados.

Antônimos

record class

Veja também

Todos os termos de C#