0Pricing
C# Academy · Aula

Elementos nomeados de tuplas

Dê nomes significativos aos campos das tuplas.

Elementos nomeados de tuplas é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

Dando nomes aos elementos da tupla

Em vez de Item1/Item2, você pode dar nomes aos elementos da tupla para tornar o código mais legível: (int Id, string Name).

using System;

class Program
{
    static void Main()
    {
        (int Id, string Name) user = (1, "Ada");
        Console.WriteLine(user.Id + ": " + user.Name);
    }
}

Nomes no literal

Você pode associar nomes diretamente ao criar a tupla, e o compilador os preservará.

using System;

class Program
{
    static void Main()
    {
        var point = (X: 3, Y: 4);
        Console.WriteLine("X=" + point.X + ", Y=" + point.Y);
    }
}

Por que os nomes melhoram a clareza

Elementos nomeados documentam a intenção. result.Total é muito mais claro do que result.Item2.

using System;

class Program
{
    static void Main()
    {
        var result = (Count: 3, Total: 150);
        Console.WriteLine("Avg: " + ((double)result.Total / result.Count).ToString("0.0"));
    }
}

Nomes são rótulos opcionais

Os nomes dos elementos de uma tupla são uma conveniência do tempo de compilação. Internamente, os campos ainda são Item1 e Item2; ambos os nomes funcionam.

using System;

class Program
{
    static void Main()
    {
        var p = (Age: 30, City: "Rome");
        Console.WriteLine(p.Age + " / " + p.Item1);   // same value
        Console.WriteLine(p.City + " / " + p.Item2);
    }
}

Tuplas nomeadas em assinaturas de métodos

Um método pode declarar uma tupla nomeada como seu parâmetro ou tipo de retorno, tornando a API autoexplicativa.

using System;

class Program
{
    static (int Sum, int Product) Compute(int a, int b)
    {
        return (a + b, a * b);
    }

    static void Main()
    {
        var r = Compute(3, 4);
        Console.WriteLine("Sum=" + r.Sum + ", Product=" + r.Product);
    }
}

Combinando nomes e posições

Você pode nomear alguns elementos e deixar outros posicionais, embora nomear todos seja mais claro.

using System;

class Program
{
    static void Main()
    {
        var data = (Id: 7, "guest", Active: true);
        Console.WriteLine(data.Id + ", " + data.Item2 + ", " + data.Active);
    }
}

Nomes com membros inferidos

Ao criar uma tupla a partir de variáveis nomeadas, o C# pode inferir automaticamente nomes correspondentes para os elementos.

using System;

class Program
{
    static void Main()
    {
        int width = 10, height = 5;
        var size = (width, height);   // names inferred from variables
        Console.WriteLine("w=" + size.width + ", h=" + size.height);
    }
}

Atualizando elementos nomeados

Elementos nomeados ainda são campos graváveis, portanto você pode reatribuí-los enquanto o programa é executado.

using System;

class Program
{
    static void Main()
    {
        var game = (Player: "A", Score: 0);
        game.Score += 25;
        Console.WriteLine(game.Player + " scored " + game.Score);
    }
}

Tuplas nomeadas em listas

Listas de tuplas nomeadas são quase tão fáceis de ler quanto linhas de uma tabela.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var people = new List<(string Name, int Age)>
        {
            ("Ann", 30),
            ("Bob", 25)
        };
        foreach (var p in people)
            Console.WriteLine(p.Name + " is " + p.Age);
    }
}

Igualdade com nomes

Os nomes não afetam a igualdade. Duas tuplas são iguais quando seus valores correspondem, independentemente dos nomes dos elementos.

using System;

class Program
{
    static void Main()
    {
        var a = (X: 1, Y: 2);
        var b = (A: 1, B: 2);
        Console.WriteLine(a == b);   // True - values match
    }
}

Reunindo tudo

Tuplas nomeadas combinam a leveza das tuplas com a legibilidade de campos nomeados, sendo perfeitas para retornos claros de métodos.

using System;

class Program
{
    static (bool Ok, string Message) Validate(int age)
    {
        if (age < 0) return (false, "Age cannot be negative");
        return (true, "Valid");
    }

    static void Main()
    {
        var v = Validate(-1);
        Console.WriteLine(v.Ok + ": " + v.Message);
    }
}

Verificação rápida

Teste sua compreensão sobre elementos de tuplas nomeadas.

Recapitulação

Elementos de tuplas nomeadas, como (int Id, string Name), tornam as tuplas autoexplicativas; você os acessa pelo nome em vez de Item1. Os nomes podem ser declarados, inferidos a partir de variáveis e usados em assinaturas de métodos. Eles são rótulos do tempo de compilação e não afetam a igualdade, que compara os valores.

using System;

class Program
{
    static void Main()
    {
        var user = (Id: 42, Name: "Kai");
        Console.WriteLine(user.Name + " #" + user.Id);
    }
}

Perguntas Frequentes

A aula “Elementos nomeados de tuplas” é grátis?

Sim — o texto completo de “Elementos nomeados de tuplas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Elementos nomeados de tuplas”?

Dê nomes significativos aos campos das tuplas. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Elementos nomeados de tuplas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos das tuplas de valor
  2. Elementos nomeados de tuplas
  3. Desconstrução
  4. Tuplas como valores de retorno de métodos
← Voltar para C# Academy