C# 10 - Criando tipos anônimos com a expressão 'with'
Hoje veremos o novo recurso Anonymous 'with' Expressions do C# 10. |
O novo recurso do C# 10 chamado Anonymous 'with' Expressions de permite usar a palavra-chave with para criar um novo objeto anônimo a partir de outro objeto.
A palavra chave 'with' foi introduzida na versão 9.0 do C# e permite criar objetos record a partir de outros objetos record, criando uma cópia do record e alterando uma ou mais propriedades.
Exemplo : C# 9
using System;
var cachorro = new Animal("Canelinha", "Cachorro", 7);
var gato = cachorro with { Tipo = "Gato" };
Console.WriteLine(gato.Nome); //Canelinha
Console.ReadKey();
public record Animal(string Nome, string Tipo, int Idade);
|
No entanto não podíamos usar este recurso com objetos anônimos.
Por exemplo, se eu tiver o seguinte tipo anônimo :
var aluno = new { Id = 1, Nome = "Ana", Idade = 7 , Sexo="M"}; |
Para criar um novo objeto anônimo com as mesmas propriedades usando o tipo anterior como modelo eu teria que fazer isso de forma indireta usando o seguinte código :
var aluna = new { aluno.Id, Nome = "Paulo", aluno.Idade , Sexo = "F" }; |
Vejamos como isso foi melhorado no C# 10.
Exemplo : C# 10
Agora no C# 10 podemos usar a palavra-chave with para criar um novo objeto anônimo a partir de outro objeto anônimo :
|
Em essência, a palavra-chave
with agora funciona da mesma maneira
em objetos record e em objetos anônimos.
E estamos conversados...
"Rogo-vos, pois, irmãos, pela
compaixão de Deus, que apresenteis os vossos corpos em sacrifício vivo, santo e
agradável a Deus, que é o vosso culto racional."
Romanos 12:1
Referências: