0Pricing
C# Academy · Lekcja

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

  1. Podstawy krotek wartościowych
  2. Nazwane elementy krotek
  3. Dekonstrukcja
  4. Krotki jako wartości zwracane metod
← Powrót do C# Academy