0Pricing
C# Academy · Pelajaran

Parameter opsional/bernama; ref/out/in (dasar)

Gunakan parameter opsional dan argumen bernama agar jelas; teruskan dengan referensi menggunakan ref; kembalikan nilai tambahan dengan out; perhatikan bahwa parameter in belum tersedia di C# 6.

Parameter opsional/bernama; ref/out/in (dasar) adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. 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 3 pelajaran total.

Ikhtisar pelajaran

Tujuan: Gunakan parameter opsional dan argumen bernama agar kode mudah dibaca; pahami ref dan out. Catatan: parameter in tidak tersedia dalam C# 6.

Parameter opsional

Tambahkan nilai bawaan untuk penyesuaian sederhana tanpa banyak metode dengan nama berbeda.

using System;

public static class Notifier
{
  // Optional parameter: suffix has a default value
  public static void Notify(string message, string suffix = "!")
  {
    Console.WriteLine(message + suffix);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Notifier.Notify("Saved");          // uses "!"
    Notifier.Notify("Warning", "!!");  // overrides default
  }
}

Argumen bernama

Argumen bernama membuat pemanggilan metode menjelaskan dirinya sendiri dan memungkinkan pengurutan ulang yang aman.

using System;

public static class Greeter
{
  public static void Greet(string name, string prefix, int repeat)
  {
    for (int i = 0; i < repeat; i = i + 1)
    {
      Console.WriteLine(prefix + " " + name);
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Named args improve readability and allow reordering at call site
    Greeter.Greet(name: "Ada", prefix: "Hello", repeat: 2);
    Greeter.Greet(repeat: 1, name: "Alan", prefix: "Hi");
  }
}

Parameter ref

ref meneruskan variabel berdasarkan referensi; pemanggil harus menginisialisasinya terlebih dahulu.

using System;

public static class RefDemo
{
  public static void Increment(ref int n)
  {
    n = n + 1; // modifies caller's variable
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int value = 5;           // must be assigned before passing by ref
    RefDemo.Increment(ref value);
    Console.WriteLine("value = " + value); // 6
  }
}

Parameter out

out memungkinkan metode mengembalikan nilai tambahan melalui parameter; metode tersebut harus menetapkan nilainya.

using System;

public static class OutDemo
{
  public static bool TryDivide(int a, int b, out int result)
  {
    if (b == 0)
    {
      result = 0;   // out must be assigned before return
      return false;
    }
    result = a / b;
    return true;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int r; // not required to be assigned before passing as out
    bool ok = OutDemo.TryDivide(9, 0, out r);
    Console.WriteLine("ok=" + ok + " r=" + r);
  }
}

Tentang "in" (C# 6)

Catatan: parameter in (berdasarkan referensi dan hanya-baca) hadir dalam versi C# yang lebih baru. Dalam C# 6, Anda dapat:

  • Meneruskan berdasarkan nilai (salinan) untuk tipe kecil
  • Menggunakan ref hanya ketika perubahan diperlukan
  • Menjadikan parameter metode readonly berdasarkan konvensi (jangan menetapkannya ulang)

Dasar-dasar ref dan out

Pemeriksaan singkat: Pernyataan mana tentang ref dan out yang benar dalam C# 6?

Ringkasan

Ringkasan: Gunakan parameter opsional untuk nilai bawaan, argumen bernama untuk kejelasan, ref untuk mengubah data pemanggil, dan out untuk mengembalikan nilai tambahan. C# 6 tidak mendukung parameter in.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Parameter opsional/bernama; ref/out/in (dasar)” gratis?

Ya — teks lengkap “Parameter opsional/bernama; ref/out/in (dasar)” 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 3 pelajaran total.

Apa yang akan aku pelajari di “Parameter opsional/bernama; ref/out/in (dasar)”?

Gunakan parameter opsional dan argumen bernama agar jelas; teruskan dengan referensi menggunakan ref; kembalikan nilai tambahan dengan out; perhatikan bahwa parameter in belum tersedia di C# 6. 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 2 dari 3.

Berapa lama pelajaran “Parameter opsional/bernama; ref/out/in (dasar)” 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. Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading
  2. Parameter opsional/bernama; ref/out/in (dasar)
  3. Fungsi lokal (catatan C# 6) dan overloading
← Kembali ke C# Academy