Em algumas situação talvez você precise que um determinado método retorne mais de um valor. Existem algumas formas de se fazer isso por exemplo através do uso de parâmetros out e ref ou retornando um class ou struct. Porém, neste post irei mostrar como fazer isso através de Tuplas
As tuplas são contêineres de dados mais simples e mais flexíveis do que os tipos class e struct. Fazer uma struct ou class significa que você está definindo um tipo com os dados e comportamento. Muitas vezes, você simplesmente deseja armazenar diversos valores em um único objeto. Então considere estes fatores antes de decidir o que usar.
Tuplas nomeadas e sem nome
Quando você não nomeia os campos de uma tupla eles serão nomeado automaticamente para Item1, Item2, Item3 e assim por diante.
Dê preferência por nomear os campos de uma tupla. Você pode fazer isso ao inicializar a mesma.
Os nomes de campo para uma tupla também podem ser fornecidos por meio das variáveis usadas para inicializar a tupla
Comparação de Tuplas
Quando se compara duas tuplas os valores são as únicas coisas levadas em consideração, ou seja, mesmo se mudássemos os nomes dos campos de umas das tuplas do código acima o retorno ainda seria true. Por outro lado se mudássemos algum dos valores seria retornado false.
Tuplas como valores retornados do método
Desconstrução
Descontruir uma tupla retornada por um método é bem semelhante a forma como fazemos no javascript. Você pode declarar explicitamente o tipo de cada campo dentro de parênteses para criar variáveis discretas para cada um dos elementos na tupla:
Você também pode declarar variáveis de tipo implícito para cada campo em uma tupla usando a palavra-chave var fora dos parênteses:
Também é válido usar a palavra-chave var com qualquer uma ou todas as declarações de variável dentro dos parênteses:
コメント