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.