Pular para o conteúdo

🪞 Reflexão de Código: Tuplas, Ternário e Desconstrução em C#

  • por

Pessoal, vim compartilhar uns pontos que parecem simples, mas quando a gente começa a usar no dia a dia de .NET muda o jeito de pensar código, fica também como revisão do curso: tuplas, operador ternário e desconstrução de objetos.

🎁 Tuplas — quando uma variável só não dá conta

Em vez de criar uma classe só pra devolver duas coisinhas, dá pra usar tupla:

(string Nome, int Idade) pessoa = ("Laís", 11);
Console.WriteLine($"{pessoa.Nome} tem {pessoa.Idade} anos");

Ou até mais rápido:

var resultado = (Soma: 42, Sucesso: true);
Console.WriteLine($"Soma = {resultado.Soma}, Sucesso = {resultado.Sucesso}");

💡 Economiza código e fica bem legível.

📌 Dica:  Você pode pensar numa tupla como uma classe/struct improvisada, feita na hora, mas bem mais simples e rápida.

🎲 Operador ternário é tipo uma placa de trânsito

Imagina que você tá dirigindo e chega num cruzamento.

Tem uma placa que diz:

👉 Se tiver sinal verde, vire à direita.

👉 Senão, siga em frente.

No código, isso seria:

string acao = (sinal == "verde") ? "virar à direita" : "seguir em frente";

✔️É um if/else de bolso, quando você só quer decidir algo rapidinho…

⚡ Ideal pra lógica simples.

🔓 Desconstrução de objeto: pegando só o que interessa

Se você já usou tupla, a desconstrução vem junto:

var (nome, idade) = pessoa;
Console.WriteLine($"{nome} tem {idade} anos");

E se for uma classe, dá pra criar um método Deconstruct e mandar ver:

class Usuario
{
    public string Nome { get; set; }
    public int Idade { get; set; }

    public void Deconstruct(out string nome, out int idade)
    {
        nome = Nome;
        idade = Idade;
    }
}

var usuario = new Usuario { Nome = "Mandy", Idade = 30 };
var (nome, idade) = usuario;

Console.WriteLine($"{nome} tem {idade} anos");

🔑 Isso deixa o código mais limpo, principalmente quando você só precisa de alguns valores do objeto.

📌O Deconstruct serve pra te dar um “atalho” e permitir pegar só os pedaços que interessam de um objeto, sem precisar ficar carregando ou escrevendo tudo.

📦 Sem Deconstruct (o jeito tradicional)

var usuario = new Usuario { Nome = "Mandy", Idade = 30, Cidade = "Recife" };

// Quero só nome e idade
string nome = usuario.Nome;
int idade = usuario.Idade;

✨ Com Deconstruct

Na classe:

class Usuario
{
    public string Nome { get; set; }
    public int Idade { get; set; }
    public string Cidade { get; set; }

    public void Deconstruct(out string nome, out int idade)
    {
        nome = Nome;
        idade = Idade;
    }
}

No uso:

var usuario = new Usuario { Nome = "Mandy", Idade = 30, Cidade = "Recife" };

// Só pego o que me interessa
var (nome, idade) = usuario;

Console.WriteLine($"{nome} tem {idade} anos");

Aqui o objeto tem 3 propriedades, mas tu desconstruiu só 2 porque o método Deconstruct “ensinou” isso ao compilador.

🚀 Conclusão

Esses três recursos podem parecer detalhe, mas juntos dão um boost de clareza e produtividade.

  • Tupla = devolve mais de um valor sem drama.
  • Ternário = if/else sem burocracia.
  • Desconstrução = pega só o que importa.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *