Nazwane elementy krotek
Nadawaj polom krotek znaczące nazwy.
Nazwane elementy krotek to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.
Nadawanie nazw elementom krotki
Zamiast Item1/Item2 można nadać elementom krotki nazwy, aby kod był czytelniejszy: (int Id, string Name).
using System;
class Program
{
static void Main()
{
(int Id, string Name) user = (1, "Ada");
Console.WriteLine(user.Id + ": " + user.Name);
}
}Nazwy w literałach
Nazwy można przypisać bezpośrednio podczas tworzenia krotki, a kompilator je zachowa.
using System;
class Program
{
static void Main()
{
var point = (X: 3, Y: 4);
Console.WriteLine("X=" + point.X + ", Y=" + point.Y);
}
}Dlaczego nazwy zwiększają czytelność
Nazwane elementy dokumentują zamiar autora. result.Total jest znacznie czytelniejsze niż 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"));
}
}Nazwy są opcjonalnymi etykietami
Nazwy elementów krotki są udogodnieniem dostępnym podczas kompilacji. Wewnętrznie pola nadal nazywają się Item1, Item2; działają obie formy nazw.
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);
}
}Nazwane krotki w sygnaturach metod
Metoda może zadeklarować nazwaną krotkę jako typ parametru lub zwracanej wartości, dzięki czemu interfejs API sam opisuje swoje przeznaczenie.
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);
}
}Łączenie elementów nazwanych i pozycyjnych
Można nazwać niektóre elementy, a pozostałe pozostawić pozycyjne, choć czytelniej jest nazwać je wszystkie.
using System;
class Program
{
static void Main()
{
var data = (Id: 7, "guest", Active: true);
Console.WriteLine(data.Id + ", " + data.Item2 + ", " + data.Active);
}
}Nazwy z elementów wywnioskowanych
Podczas tworzenia krotki z nazwanych zmiennych język C# może automatycznie wywnioskować pasujące nazwy elementów.
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);
}
}Aktualizowanie nazwanych elementów
Nazwane elementy nadal są zapisywalnymi polami, więc można ponownie przypisywać im wartości podczas działania programu.
using System;
class Program
{
static void Main()
{
var game = (Player: "A", Score: 0);
game.Score += 25;
Console.WriteLine(game.Player + " scored " + game.Score);
}
}Nazwane krotki na listach
Listy nazwanych krotek są niemal tak czytelne jak wiersze tabeli.
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);
}
}Równość a nazwy
Nazwy nie wpływają na równość. Dwie krotki są równe, gdy ich wartości są takie same, niezależnie od nazw elementów.
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
}
}Podsumowanie
Nazwane krotki łączą lekkość krotek z czytelnością nazwanych pól, dzięki czemu doskonale nadają się do przejrzystego zwracania wartości z metod.
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);
}
}Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat nazwanych elementów krotek.
Podsumowanie
Nazwane elementy krotki, takie jak (int Id, string Name), sprawiają, że krotki same dokumentują swoje przeznaczenie; odwołujesz się do nich po nazwie zamiast za pomocą Item1. Nazwy można zadeklarować, wywnioskować ze zmiennych i używać w sygnaturach metod. Są etykietami dostępnymi podczas kompilacji i nie wpływają na równość, która porównuje wartości.
using System;
class Program
{
static void Main()
{
var user = (Id: 42, Name: "Kai");
Console.WriteLine(user.Name + " #" + user.Id);
}
}Często zadawane pytania
Czy lekcja „Nazwane elementy krotek” jest bezpłatna?
Tak — pełny tekst „Nazwane elementy krotek” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Nazwane elementy krotek”?
Nadawaj polom krotek znaczące nazwy. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Nazwane elementy krotek”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy krotek wartościowych
- Nazwane elementy krotek
- Dekonstrukcja
- Krotki jako wartości zwracane metod