C# · Intermediário · Inglês · Técnico
with expression
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