Como trabalhar com Records, Tipos Anônimos e Mutação não destrutiva

5246 단어 programmingcsharp


Fala Dev!!, hoje vou compartilhar alguns pontos relatedes que você pode fazer com os registros (Record) e tipos anônimos. Vou mostrar também conceitos de mutação não destrutiva(비파괴). E falar quando utilizar e por que usar esses recursos do C#.

퀄 에 데세 레코드?



Com o C# 9 podemos usarrecord는 새로운 참조 정보를 제공합니다. 클래스 또는 구조체의 이름을 확인하십시오.

OC# 10은 estrutura Record를 소개하며, 이는 용맹의 가치를 정의하기 위한 것입니다. Os registros são distintos das class em que os tipos usam igualdade baseada em valor.

💡 Tipos de valor? vamos revisar.



예시 없음:

public record Customer(string Name, double Height);


Está é a forma de declarar um record, chamado de registro posicional. Definido como construtor primário.

As propriedades Name e Address são propriedades apenas de inicialização, o que significa que elas só podem ser definidas no construtor ou usando um inicializador de propriedade.

Sobre Non-Destructive mutação usando a expressão With



Não podemos modificar as propriedades do nosso record, porque as propriedades são apenas init. No entanto, podemos usar a expressão with (introduzida no C# 9) para criar uma nova instância do nosso registro com valores modificados.

Uma expressão with produz uma cópia de seu operando com as propriedades e campos especificados modificados

Vejamos 예시 없음:

var firstRegistration = new Customer("William", 1.70);

var changeSize = firstRegistration with
{
   Height = 1.75
};


피카 리가도! ⚠️
  • 인스턴스 최초 등록은 변경되지 않습니다.
  • Expressão with cria uma nova instância do record apenas com a propriedade Height modificada.

  • Como prometido que iria falar sobre Tipos Anônimos, então deixe-me mostrar algo surpreendente.

    익명 유형 및 비파괴 변경 사항:



    com tipos anônimos를 사용하여 표현을 사용할 수 있습니까?

    Criando um tipo 익명:

    var secondRegistration = new 
    {
       Name = "Maria",
       Height = 1.90
    };
    


    É assim que modificamos usando a expressão with:

    var thirdRegistration = secondRegistration with  
    {
       Name = "João"
    };
    


    E novamente as mesmas regras se aplicam:
  • 인스턴스 원본 secondRegistration은 영구적으로 변경되지 않습니다.
  • A expressão with a caba criando uma nova instância de tipo anônimo onde temos apenas a propriedade Name modificada.

  • 당신이 무엇을 할 수 있습니까? LINQ 방법을 사용하여 Carregar um tipo anônimo do banco de dados em que alguma propriedade esteja em valor default. Você também pode está utilizando para calcular valores dessas propriedades em memoria. 마이 소브레non-destructive

    Gostou da dica? 데익스 좋아요!!


    Participe do nosso grupo: https://discord.gg/pzU5sDBS6B

    Vai pra cima DEV!!

    좋은 웹페이지 즐겨찾기