0Pricing
C# Academy · Lezione

Elementi denominati delle tuple

Assegni nomi significativi ai campi delle tuple.

Elementi denominati delle tuple è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.

Dare un nome agli elementi di una tupla

Invece di usare Item1/Item2, può assegnare nomi agli elementi della tupla per ottenere codice più leggibile: (int Id, string Name).

using System;

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

Nomi nel valore letterale

Può associare i nomi direttamente durante la creazione della tupla, e il compilatore li conserva.

using System;

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

Perché i nomi migliorano la chiarezza

Gli elementi con nome documentano l'intento. result.Total è molto più chiaro di 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"));
    }
}

I nomi sono etichette facoltative

I nomi degli elementi di una tupla sono una comodità disponibile in fase di compilazione. Internamente, i campi restano Item1 e Item2; entrambi i nomi funzionano.

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);
    }
}

Tuple con nome nelle firme dei metodi

Un metodo può dichiarare una tupla con nome come tipo di parametro o di ritorno, rendendo l'API autoesplicativa.

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);
    }
}

Combinare elementi con nome e posizionali

Può assegnare un nome solo ad alcuni elementi e lasciare gli altri posizionali, anche se assegnare un nome a tutti è più chiaro.

using System;

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

Nomi con membri dedotti

Quando costruisce una tupla a partire da variabili con nome, C# può dedurre automaticamente i nomi corrispondenti degli elementi.

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);
    }
}

Aggiornare gli elementi con nome

Gli elementi con nome sono comunque campi scrivibili, quindi può riassegnarli durante l'esecuzione del programma.

using System;

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

Tuple con nome nelle liste

Le liste di tuple con nome si leggono quasi come righe di una tabella.

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);
    }
}

Uguaglianza e nomi

I nomi non influiscono sull'uguaglianza. Due tuple sono uguali quando i loro valori coincidono, indipendentemente dai nomi degli elementi.

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
    }
}

In sintesi

Le tuple con nome combinano la leggerezza delle tuple con la leggibilità dei campi denominati e sono perfette per rendere chiari i valori restituiti dai metodi.

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 rapida

Verifichi la Sua comprensione degli elementi con nome delle tuple.

Riepilogo

Gli elementi con nome delle tuple, come (int Id, string Name), rendono le tuple autoesplicative; può accedervi tramite il nome anziché Item1. I nomi possono essere dichiarati, dedotti dalle variabili e usati nelle firme dei metodi. Sono etichette disponibili in fase di compilazione e non influiscono sull'uguaglianza, che confronta i valori.

using System;

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

Domande Frequenti

La lezione «Elementi denominati delle tuple» è gratuita?

Sì — il testo completo di «Elementi denominati delle tuple» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.

Cosa imparerò in «Elementi denominati delle tuple»?

Assegni nomi significativi ai campi delle tuple. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Elementi denominati delle tuple»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Nozioni di base sulle tuple di valori
  2. Elementi denominati delle tuple
  3. Decomposizione
  4. Tuple come valori restituiti dai metodi
← Torna a C# Academy