C# Academy · Lektion

Navngivne tuple-elementer

Giv tuple-felter meningsfulde navne.

Lektion 2 af 413 trin

Navngivne tuple-elementer er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.

Navngivning af tupel-elementer

I stedet for Item1/Item2 kan du give tupel-elementer navne for at gøre koden mere læselig: (int Id, string Name).

using System;

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

Navne i literalen

Du kan tilføje navne direkte, når du opretter tuplen, og kompileren husker dem.

using System;

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

Hvorfor navne gør koden tydeligere

Navngivne elementer dokumenterer hensigten. result.Total er langt tydeligere end 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"));
    }
}

Navne er valgfrie etiketter

Navne på tupel-elementer er en praktisk hjælp på kompileringstidspunktet. Underliggende er felterne stadig Item1 og Item2; begge former virker.

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

Navngivne tupler i metodesignaturer

En metode kan erklære en navngiven tupel som sin parameter- eller returtype, så API'et bliver selvforklarende.

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

Blanding af navngivne og positionelle elementer

Du kan navngive nogle elementer og lade andre være positionelle, men det er tydeligere at navngive dem alle.

using System;

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

Navne med automatisk udledte medlemmer

Når du opbygger en tupel ud fra navngivne variabler, kan C# automatisk udlede tilsvarende elementnavne.

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

Opdatering af navngivne elementer

Navngivne elementer er stadig skrivbare felter, så du kan tildele dem igen, mens programmet kører.

using System;

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

Navngivne tupler i lister

Lister med navngivne tupler læses næsten som rækker i en tabel.

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

Lighed med navne

Navne påvirker ikke ligheden. To tupler er ens, når deres værdier stemmer overens, uanset elementernes navne.

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

Sæt det hele sammen

Navngivne tupler kombinerer tuplernes enkelhed med læsbarheden ved navngivne felter og er perfekte til tydelige metoderesultater.

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

Hurtigt tjek

Test din forståelse af navngivne tupel-elementer.

Opsamling

Navngivne tupel-elementer som (int Id, string Name) gør tupler selvforklarende; du tilgår dem via navn i stedet for Item1. Navne kan deklareres, udledes fra variabler og bruges i metodesignaturer. De er etiketter fra kompileringstidspunktet og påvirker ikke ligheden, som sammenligner værdier.

using System;

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

Lær C# med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
93
Lektioner
346

Ofte stillede spørgsmål

Er lektionen “Navngivne tuple-elementer” gratis?

Ja — hele teksten til “Navngivne tuple-elementer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Navngivne tuple-elementer”?

Giv tuple-felter meningsfulde navne. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C# Academy?

Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Navngivne tuple-elementer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C# Academy-lektion?

Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Grundlæggende value tuples
  2. Navngivne tuple-elementer
  3. Dekomposition
  4. Tupler som returværdier fra metoder
← Tilbage til C# Academy