0Pricing
C# Academy · บทเรียน

องค์ประกอบทูเพิลที่มีชื่อ

ตั้งชื่อฟิลด์ของทูเพิลให้สื่อความหมาย

องค์ประกอบทูเพิลที่มีชื่อ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การตั้งชื่อองค์ประกอบของทูเพิล

แทนที่จะใช้ Item1/Item2 คุณสามารถตั้งชื่อให้องค์ประกอบของทูเพิลเพื่อให้โค้ดอ่านง่ายขึ้นได้: (int Id, string Name)

using System;

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

ชื่อในค่าลิเทอรัล

คุณสามารถกำหนดชื่อโดยตรงขณะสร้างทูเพิล และคอมไพเลอร์จะจดจำชื่อเหล่านั้นไว้

using System;

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

เหตุใดชื่อจึงช่วยให้ชัดเจนขึ้น

องค์ประกอบที่มีชื่อช่วยสื่อเจตนา result.Total ชัดเจนกว่า 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"));
    }
}

ชื่อเป็นเพียงป้ายกำกับเสริม

ชื่อองค์ประกอบของทูเพิลเป็นเพียงความสะดวกขณะคอมไพล์ เบื้องหลัง ฟิลด์ยังคงเป็น Item1, Item2 และสามารถใช้ได้ทั้งสองชื่อ

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

ทูเพิลที่มีชื่อในลายเซ็นของวิธีการ

วิธีการสามารถประกาศทูเพิลที่มีชื่อเป็นพารามิเตอร์หรือชนิดข้อมูลที่ส่งคืนได้ ทำให้ส่วนติดต่อการใช้งานอธิบายตัวเองได้

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

การผสมชื่อกับตำแหน่ง

คุณสามารถตั้งชื่อให้องค์ประกอบบางรายการและปล่อยรายการอื่นไว้แบบระบุตำแหน่งได้ แม้ว่าการตั้งชื่อให้ทั้งหมดจะชัดเจนกว่า

using System;

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

ชื่อจากสมาชิกที่อนุมานได้

เมื่อสร้างทูเพิลจากตัวแปรที่มีชื่อ C# สามารถอนุมานชื่อองค์ประกอบที่ตรงกันให้โดยอัตโนมัติ

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

การปรับปรุงองค์ประกอบที่มีชื่อ

องค์ประกอบที่มีชื่อยังคงเป็นฟิลด์ที่เขียนค่าได้ ดังนั้นคุณจึงกำหนดค่าใหม่ให้ได้ขณะโปรแกรมทำงาน

using System;

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

ทูเพิลที่มีชื่อในรายการ

รายการของทูเพิลที่มีชื่ออ่านได้เกือบเหมือนแถวในตาราง

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

ความเท่ากันกับชื่อองค์ประกอบ

ชื่อไม่มีผลต่อความเท่ากัน ทูเพิลสองชุดจะเท่ากันเมื่อค่าของทูเพิลตรงกัน ไม่ว่าชื่อองค์ประกอบจะเป็นอย่างไร

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

สรุปการใช้งานร่วมกัน

ทูเพิลที่มีชื่อผสานความกระชับของทูเพิลเข้ากับความอ่านง่ายของฟิลด์ที่มีชื่อ จึงเหมาะอย่างยิ่งสำหรับค่าที่วิธีการส่งคืนอย่างชัดเจน

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจของคุณเกี่ยวกับองค์ประกอบทูเพิลที่มีชื่อ

ทบทวน

องค์ประกอบทูเพิลที่มีชื่อ เช่น (int Id, string Name) ทำให้ทูเพิลอธิบายตัวเองได้ คุณเข้าถึงองค์ประกอบเหล่านี้ด้วยชื่อแทนที่จะใช้ Item1 สามารถประกาศชื่อ อนุมานชื่อจากตัวแปร และใช้ชื่อในลายเซ็นของวิธีการได้ ชื่อเป็นเพียงป้ายกำกับขณะคอมไพล์และไม่มีผลต่อความเท่ากัน ซึ่งจะเปรียบเทียบจากค่า

using System;

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

คำถามที่พบบ่อย

บทเรียน “องค์ประกอบทูเพิลที่มีชื่อ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “องค์ประกอบทูเพิลที่มีชื่อ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบทูเพิลที่มีชื่อ”

ตั้งชื่อฟิลด์ของทูเพิลให้สื่อความหมาย คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “องค์ประกอบทูเพิลที่มีชื่อ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน Value Tuple
  2. องค์ประกอบทูเพิลที่มีชื่อ
  3. การแยกโครงสร้าง
  4. ทูเพิลเป็นค่าที่เมธอดส่งคืน
← กลับไปที่ C# Academy