Akademi C# · Pelajaran

Unsur Tuple Bernama

Berikan nama yang bermakna kepada medan tuple.

Pelajaran 2 daripada 413 langkah

Unsur Tuple Bernama ialah pelajaran Akademi C# percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi C#, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.

Menamakan Elemen Tupel

Daripada menggunakan Item1/Item2, anda boleh memberikan nama kepada elemen tupel untuk menghasilkan kod yang lebih mudah dibaca: (int Id, string Name).

using System;

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

Nama dalam Literal

Anda boleh melampirkan nama secara terus semasa mencipta tupel, dan pengkompil akan mengingatinya.

using System;

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

Mengapa Nama Meningkatkan Kejelasan

Elemen bernama mendokumentasikan tujuan. result.Total jauh lebih jelas daripada 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"));
    }
}

Nama ialah Label Pilihan

Nama elemen tupel ialah kemudahan masa kompilasi. Di sebaliknya, medan itu masih Item1, Item2; kedua-dua nama boleh digunakan.

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

Tupel Bernama dalam Tandatangan Kaedah

Kaedah boleh mengisytiharkan tupel bernama sebagai parameternya atau jenis pulangannya, menjadikan API itu menerangkan dirinya sendiri.

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

Menggabungkan Nama dan Kedudukan

Anda boleh menamakan sesetengah elemen dan membiarkan yang lain mengikut kedudukan, walaupun menamakan semuanya lebih jelas.

using System;

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

Nama dengan Ahli yang Disimpulkan

Apabila anda membina tupel daripada pemboleh ubah bernama, C# boleh menyimpulkan nama elemen yang sepadan secara automatik.

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

Mengemas Kini Elemen Bernama

Elemen bernama masih merupakan medan yang boleh ditulis, jadi anda boleh menetapkannya semula semasa program berjalan.

using System;

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

Tupel Bernama dalam Senarai

Senarai tupel bernama hampir menyerupai baris dalam jadual apabila dibaca.

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

Kesamaan dengan Nama

Nama tidak mempengaruhi kesamaan. Dua tupel adalah sama apabila nilainya sepadan, tanpa mengira nama elemennya.

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

Menggabungkannya

Tupel bernama menggabungkan sifat ringan tupel dengan kebolehbacaan medan bernama, dan sangat sesuai untuk nilai pulangan kaedah yang jelas.

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

Semakan Pantas

Uji pemahaman anda tentang elemen tupel bernama.

Ulang Kaji

Elemen tupel bernama seperti (int Id, string Name) menjadikan tupel mampu menerangkan dirinya sendiri; anda mengaksesnya mengikut nama dan bukannya Item1. Nama boleh diisytiharkan, disimpulkan daripada pemboleh ubah dan digunakan dalam tandatangan kaedah. Nama tersebut ialah label masa kompilasi dan tidak mempengaruhi kesamaan, yang membandingkan nilai.

using System;

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

Pelajari C# dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
93
Pelajaran
346

Soalan Lazim

Adakah pelajaran “Unsur Tuple Bernama” percuma?

Ya — teks penuh “Unsur Tuple Bernama” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Akademi C#, tingkat taraf kepada CoddyKit PRO. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Unsur Tuple Bernama”?

Berikan nama yang bermakna kepada medan tuple. Anda berlatih Akademi C# menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Akademi C#?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi C# di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Unsur Tuple Bernama” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi C# ini?

Ya. Setiap pelajaran Akademi C# menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Asas Tuple Nilai
  2. Unsur Tuple Bernama
  3. Penyahbinaan
  4. Tuple sebagai Nilai Pulangan Kaedah
← Kembali ke Akademi C#