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
- Nozioni di base sulle tuple di valori
- Elementi denominati delle tuple
- Decomposizione
- Tuple come valori restituiti dai metodi