0Pricing
C# Academy · Pelajaran

Tuple sebagai Nilai Kembalian Metode

Kembalikan beberapa hasil tanpa parameter out.

Tuple sebagai Nilai Kembalian Metode adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Mengembalikan Beberapa Nilai

Sebuah metode hanya dapat mengembalikan satu hal, tetapi sebuah tupel memungkinkan satu hal tersebut menggabungkan beberapa nilai, sebagai alternatif yang rapi untuk parameter out.

using System;

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

    static void Main()
    {
        var result = Divide(17, 5);
        Console.WriteLine(result.Item1 + " r " + result.Item2);
    }
}

Tipe Pengembalian Tupel Bernama

Memberi nama pada elemen yang dikembalikan membuat metode menjelaskan dirinya sendiri dan membuat lokasi pemanggilan mudah dibaca.

using System;

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

    static void Main()
    {
        var r = Divide(17, 5);
        Console.WriteLine("Q=" + r.Quotient + ", R=" + r.Remainder);
    }
}

Mendekonstruksi Nilai yang Dikembalikan

Pemanggil dapat langsung mendekonstruksi tupel yang dikembalikan menjadi beberapa variabel.

using System;

class Program
{
    static (double Min, double Max) Bounds(double[] data)
    {
        double min = data[0], max = data[0];
        foreach (var d in data)
        {
            if (d < min) min = d;
            if (d > max) max = d;
        }
        return (min, max);
    }

    static void Main()
    {
        var (lo, hi) = Bounds(new double[] { 3, 7, 1, 9, 4 });
        Console.WriteLine("min=" + lo + ", max=" + hi);
    }
}

Alternatif Parameter out

Sebelum ada tupel, pengembalian nilai tambahan berarti menggunakan parameter out. Parameter tersebut tetap berfungsi, tetapi lebih rumit untuk dideklarasikan dan dipanggil.

using System;

class Program
{
    static int Divide(int a, int b, out int remainder)
    {
        remainder = a % b;
        return a / b;
    }

    static void Main()
    {
        int rem;
        int q = Divide(17, 5, out rem);
        Console.WriteLine("Q=" + q + ", R=" + rem);
    }
}

Tupel dibandingkan out: Keterbacaan

Pengembalian tupel menyimpan semua hasil dalam nilai pengembalian dan terbaca secara alami melalui dekonstruksi, sehingga biasanya lebih disukai daripada out untuk kasus sederhana.

using System;

class Program
{
    static (int Sum, int Count) Stats(int[] nums)
    {
        int sum = 0;
        foreach (var n in nums) sum += n;
        return (sum, nums.Length);
    }

    static void Main()
    {
        var (sum, count) = Stats(new[] { 2, 4, 6 });
        Console.WriteLine("Sum=" + sum + ", Count=" + count);
    }
}

Mengembalikan Status dan Nilai

Pola yang umum adalah mengembalikan penanda keberhasilan bersama hasilnya, mirip dengan pola Try, tetapi dikemas dalam satu tupel.

using System;

class Program
{
    static (bool Ok, int Value) ParseAge(string s)
    {
        if (int.TryParse(s, out int n) && n >= 0)
            return (true, n);
        return (false, 0);
    }

    static void Main()
    {
        var r = ParseAge("42");
        Console.WriteLine(r.Ok ? "Parsed " + r.Value : "Invalid");
    }
}

Kapan out Masih Berguna

out tetap lazim digunakan untuk pola Try bawaan (int.TryParse), ketika satu hasil boolean dan satu nilai out merupakan bentuk yang umum.

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("100", out int value))
            Console.WriteLine("Got " + value);
        else
            Console.WriteLine("Not a number");
    }
}

Mengembalikan Beberapa Bidang Bernama

Tupel dapat menangani beberapa hasil tanpa memaksa Anda membuat kelas sekali pakai.

using System;

class Program
{
    static (int Min, int Max, double Avg) Analyze(int[] nums)
    {
        int min = nums[0], max = nums[0], sum = 0;
        foreach (var n in nums)
        {
            if (n < min) min = n;
            if (n > max) max = n;
            sum += n;
        }
        return (min, max, (double)sum / nums.Length);
    }

    static void Main()
    {
        var a = Analyze(new[] { 4, 8, 2, 6 });
        Console.WriteLine("min=" + a.Min + ", max=" + a.Max + ", avg=" + a.Avg);
    }
}

Kapan Sebaiknya Menggunakan Kelas

Jika data yang dikelompokkan memiliki perilaku, digunakan kembali secara luas, atau memerlukan validasi, definisikan kelas atau tipe data khusus alih-alih mengembalikan tupel di mana-mana.

using System;

class Program
{
    // Fine as a tuple: small, local, no behavior
    static (int W, int H) ParseSize(string s)
    {
        var parts = s.Split('x');
        return (int.Parse(parts[0]), int.Parse(parts[1]));
    }

    static void Main()
    {
        var (w, h) = ParseSize("16x9");
        Console.WriteLine(w + " by " + h);
    }
}

Merangkai Tupel yang Dikembalikan

Anda dapat langsung memasukkan tupel yang dikembalikan ke perhitungan lain dengan mendekonstruksinya secara sebaris.

using System;

class Program
{
    static (int, int) Split(int total) => (total / 2, total - total / 2);

    static void Main()
    {
        var (a, b) = Split(7);
        Console.WriteLine("Halves: " + a + " + " + b + " = " + (a + b));
    }
}

Menggabungkan Semuanya

Mengembalikan tupel bernama adalah cara modern dan mudah dibaca untuk mengembalikan beberapa nilai yang berkaitan dari suatu metode tanpa kerumitan tambahan.

using System;

class Program
{
    static (bool Found, int Index) Search(int[] arr, int target)
    {
        for (int i = 0; i < arr.Length; i++)
            if (arr[i] == target) return (true, i);
        return (false, -1);
    }

    static void Main()
    {
        var r = Search(new[] { 5, 8, 12 }, 8);
        Console.WriteLine(r.Found ? "At index " + r.Index : "Not found");
    }
}

Uji Cepat

Uji pemahaman Anda tentang nilai yang dikembalikan tupel.

Rangkuman

Mengembalikan sebuah tupel memungkinkan metode mengembalikan beberapa nilai sekaligus, yang untuk sebagian besar kasus lebih rapi daripada out. Beri nama pada elemennya agar jelas dan biarkan pemanggil mendekonstruksinya. Gunakan out untuk pola Try yang konvensional, dan pilih kelas atau tipe data khusus jika data tersebut memiliki perilaku atau digunakan kembali secara luas.

using System;

class Program
{
    static (int Sum, int Max) Go(int[] n)
    {
        int s = 0, m = n[0];
        foreach (var x in n) { s += x; if (x > m) m = x; }
        return (s, m);
    }

    static void Main()
    {
        var (sum, max) = Go(new[] { 3, 9, 5 });
        Console.WriteLine(sum + " / " + max);
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tuple sebagai Nilai Kembalian Metode” gratis?

Ya — teks lengkap “Tuple sebagai Nilai Kembalian Metode” 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 “Tuple sebagai Nilai Kembalian Metode”?

Kembalikan beberapa hasil tanpa parameter out. 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 4 dari 4.

Berapa lama pelajaran “Tuple sebagai Nilai Kembalian Metode” 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