ExpertiDict

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

with expression

/wɪð ɪkˈsprɛʃən/substantivo

Expressão que cria uma cópia não destrutiva de um record ou struct, alterando só as propriedades indicadas e sem modificar o original.

Onde usar

É a forma idiomática de 'alterar' objetos imutáveis, como no estado de reducers e em DTOs. A cópia é rasa: referências internas continuam apontando para os mesmos objetos.

Em código

var a = new Pedido("A1", 10m);
var b = a with { Valor = 12m };
Console.WriteLine(a.Valor + " " + b.Valor);
record Pedido(string Id, decimal Valor);

Exemplos

Use a with expression to copy it and change one field.

Use uma with expression para copiar e mudar um campo.

The original record stays untouched after the with.

O record original fica intacto depois do with.

Cuidado

Não funciona com classes comuns, só com records, structs e tipos anônimos.

Sinônimos

cópia não destrutiva

Veja também

Todos os termos de C#