C# – Use Tuples com bom senso

Aplicar o uso da classe Tuple requer bom senso por parte do desenvolvedor, contudo, antes de entrarmos com detalhes sobre isso, vamos antes alinhar o entendimento do que seja e para quais fins utilizamos a classe Tuple.

Se você ainda não está familiarizado com a classe Tuple (System.Tuple) disponível no .Net 4 ou superior , segue segundo a documentação no site da Microsoft seu conceito e de como pode ser utilizada:

Uma tupla é uma estrutura de dados que tem um número específico e a sequência de elementos.

As tuplas são comumente usadas de quatro maneiras:

  1. Para representar um único conjunto de dados. Por exemplo, uma tupla pode representar um registro de banco de dados.
  2. Para fornecer acesso fácil a, e a manipulação de um conjunto de dados.
  3. Para retornar vários valores de um método sem usar out os parâmetros (c#) ou ByRef parâmetros (Visual Basic).
  4. Para passar vários valores para um método por meio de um parâmetro único. Por exemplo, o Thread.Start(Object) método tem um único parâmetro que permite que você forneça um valor para o método que o thread é executado no momento da inicialização. Se você fornecer um Tuple do objeto como o argumento de método, você pode fornecer uma rotina de inicialização do thread com três itens de dados.

Abaixo segue um exemplo de uso da classe Tuple em C#:

Exemplo de uso do Tuple

Apesar do conceito NÃO ser novo na área da desenvolvimento de softwares, é show do bola não acha?

Depois da coisa boa , vem as considerações que me fizeram escrever este post.

Use Tuple para substituir uma matriz de objeto.

Quando você declara um objeto tipo Tuple (ver imagem acima), você precisa certificar que o código esteja preparado para usar corretamente a sequencia que estará disponível no objeto tipo Tuple, note que um objeto tipo Tuple irá expor somente as propriedades com o nome Item1, Item2, Item3, Item4 … Entendeu?

Usar um objeto tipo Tuple em um contexto onde necessita comparar dois ou mais objetos é dar um tiro no pé, neste cenário, o ideial é que crie as suas classes customizadas, Exemplo Carro (Marca , Modelo..), Pessoa (Nome, Idade…)…

A classe System.Tuple não implementa uma classe IEnumarable, neste caso, você não poderá utilizar um foreach.

Programar é bom demais mais não esqueça de ganhar dinheiro.

Ivaldo de Oliveira Batista Júnior