0Pricing
C# Academy · Pelajaran

Dekonstruksi

Bongkar tuple menjadi beberapa variabel terpisah.

Dekonstruksi adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Apa Itu Dekonstruksi?

Dekonstruksi memisahkan tupel (atau objek) menjadi beberapa variabel dalam satu pernyataan, sehingga Anda dapat langsung memberi nama pada setiap bagian.

using System;

class Program
{
    static void Main()
    {
        var point = (3, 4);
        (int x, int y) = point;
        Console.WriteLine("x=" + x + ", y=" + y);
    }
}

Mendekonstruksi Tupel

Letakkan variabel tujuan dalam tanda kurung di sebelah kiri =. Masing-masing menerima elemen tupel yang sesuai.

using System;

class Program
{
    static void Main()
    {
        var user = ("Ada", 36);
        (string name, int age) = user;
        Console.WriteLine(name + " is " + age);
    }
}

Menggunakan var dalam Dekonstruksi

Anda dapat membiarkan kompilator menyimpulkan tipe dengan var, baik untuk setiap variabel maupun untuk seluruh kelompok.

using System;

class Program
{
    static void Main()
    {
        var data = (1, "one", true);
        var (id, word, flag) = data;
        Console.WriteLine(id + " " + word + " " + flag);
    }
}

Mendekonstruksi Hasil Metode

Anda dapat langsung mendekonstruksi tupel yang dikembalikan metode menjadi variabel-variabel bernama.

using System;

class Program
{
    static (int, int) MinMax(int a, int b) => a < b ? (a, b) : (b, a);

    static void Main()
    {
        var (lo, hi) = MinMax(8, 3);
        Console.WriteLine("min=" + lo + ", max=" + hi);
    }
}

Mengabaikan Nilai

Gunakan garis bawah _ untuk mengabaikan bagian yang tidak Anda perlukan selama dekonstruksi.

using System;

class Program
{
    static (int, int, int) Rgb() => (255, 128, 0);

    static void Main()
    {
        var (r, _, _) = Rgb();
        Console.WriteLine("Red channel: " + r);
    }
}

Mendekonstruksi ke Variabel yang Sudah Ada

Anda dapat menetapkan nilai ke variabel yang telah dideklarasikan dengan menghilangkan nama tipenya.

using System;

class Program
{
    static void Main()
    {
        int a = 0, b = 0;
        (a, b) = (10, 20);
        Console.WriteLine(a + ", " + b);
    }
}

Menukar Nilai dengan Tupel

Trik yang praktis: tukar dua variabel dalam satu baris menggunakan dekonstruksi tupel, tanpa memerlukan variabel sementara.

using System;

class Program
{
    static void Main()
    {
        int x = 1, y = 2;
        (x, y) = (y, x);
        Console.WriteLine("x=" + x + ", y=" + y);
    }
}

Metode Deconstruct

Kelas Anda sendiri dapat mendukung dekonstruksi dengan mendefinisikan metode Deconstruct yang memiliki parameter out.

using System;

class Point
{
    public int X, Y;
    public Point(int x, int y) { X = x; Y = y; }

    public void Deconstruct(out int x, out int y)
    {
        x = X;
        y = Y;
    }
}

class Program
{
    static void Main()
    {
        var p = new Point(5, 9);
        var (px, py) = p;
        Console.WriteLine(px + ", " + py);
    }
}

Beberapa Kelebihan Deconstruct

Sebuah kelas dapat menyediakan beberapa kelebihan Deconstruct yang menampilkan jumlah nilai yang berbeda.

using System;

class Person
{
    public string Name; public int Age; public string City;
    public Person(string n, int a, string c) { Name = n; Age = a; City = c; }

    public void Deconstruct(out string name, out int age)
    {
        name = Name; age = Age;
    }
}

class Program
{
    static void Main()
    {
        var p = new Person("Ada", 36, "London");
        var (name, age) = p;
        Console.WriteLine(name + ", " + age);
    }
}

Dekonstruksi dalam foreach

Saat melakukan perulangan pada koleksi tupel, Anda dapat mendekonstruksi setiap elemen langsung di bagian kepala foreach.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pairs = new List<(string, int)>
        {
            ("Ann", 30),
            ("Bob", 25)
        };
        foreach (var (name, age) in pairs)
            Console.WriteLine(name + " is " + age);
    }
}

Menggabungkan Semuanya

Dekonstruksi membuat kode yang mengembalikan atau menyimpan beberapa nilai terbaca dengan rapi, dengan memberi nama pada setiap bagian saat digunakan.

using System;

class Program
{
    static (int Quotient, int Remainder) Divide(int a, int b) => (a / b, a % b);

    static void Main()
    {
        var (q, r) = Divide(17, 5);
        Console.WriteLine("17 / 5 = " + q + " remainder " + r);
    }
}

Uji Cepat

Uji pemahaman Anda tentang dekonstruksi.

Rangkuman

Dekonstruksi memisahkan tupel atau objek menjadi variabel bernama dalam satu pernyataan. Gunakan var (a, b) = ..., abaikan bagian dengan _, tukar variabel, dan lakukan dekonstruksi dalam foreach. Kelas khusus dapat ikut mendukungnya dengan metode Deconstruct yang menggunakan parameter out, dan metode tersebut dapat memiliki beberapa kelebihan.

using System;

class Program
{
    static void Main()
    {
        var (a, b, c) = (1, 2, 3);
        Console.WriteLine(a + b + c);
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dekonstruksi” gratis?

Ya — teks lengkap “Dekonstruksi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Dekonstruksi”?

Bongkar tuple menjadi beberapa variabel terpisah. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Dekonstruksi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Tuple Nilai
  2. Elemen Tuple Bernama
  3. Dekonstruksi
  4. Tuple sebagai Nilai Kembalian Metode
← Kembali ke C# Academy