Akademi C# · Pelajaran

Parameter pilihan/bernama; ref/out/in (asas)

Gunakan parameter pilihan dan argumen bernama untuk kejelasan; hantar melalui rujukan dengan ref; pulangkan nilai tambahan dengan out; ambil perhatian bahawa parameter in tidak tersedia dalam C# 6.

Pelajaran 2 daripada 38 langkah

Parameter pilihan/bernama; ref/out/in (asas) ialah pelajaran Akademi C# percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. 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 3 pelajaran.

Gambaran keseluruhan pelajaran

Matlamat: Gunakan parameter optional dan argumen named untuk kebolehbacaan; fahami ref dan out. Nota: parameter in tidak tersedia dalam C# 6.

Parameter optional

Tambahkan defaults untuk penyesuaian mudah tanpa banyak kaedah beban lampau.

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 named

Argumen named menjadikan panggilan lebih mudah difahami dan membolehkan susunan semula yang selamat.

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 menghantar pemboleh ubah melalui rujukan; pemanggil mesti memulakannya 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 membolehkan kaedah mengembalikan nilai tambahan melalui parameter; kaedah tersebut mesti 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)

Nota: parameter in (rujukan baca sahaja) diperkenalkan dalam versi C# yang lebih baharu. Dalam C# 6 anda boleh:

  • Menghantar melalui nilai (salinan) untuk jenis kecil
  • Menggunakan ref hanya apabila perubahan diperlukan
  • Menjadikan parameter kaedah readonly mengikut konvensyen (jangan tetapkan semula nilainya)

Asas ref berbanding out

Semakan ringkas: Pernyataan manakah tentang ref dan out yang betul dalam C# 6?

Ulang kaji

Ulang kaji: Gunakan parameter optional untuk nilai lalai, argumen named untuk kejelasan, ref untuk mengubah data pemanggil, dan out untuk mengembalikan nilai tambahan. C# 6 tidak menyokong parameter in.

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 “Parameter pilihan/bernama; ref/out/in (asas)” percuma?

Ya — teks penuh “Parameter pilihan/bernama; ref/out/in (asas)” 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 3 pelajaran.

Apakah yang akan saya pelajari dalam “Parameter pilihan/bernama; ref/out/in (asas)”?

Gunakan parameter pilihan dan argumen bernama untuk kejelasan; hantar melalui rujukan dengan ref; pulangkan nilai tambahan dengan out; ambil perhatian bahawa parameter in tidak tersedia dalam C# 6. 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 3.

Berapa lamakah pelajaran “Parameter pilihan/bernama; ref/out/in (asas)” 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. Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan
  2. Parameter pilihan/bernama; ref/out/in (asas)
  3. Fungsi setempat (nota C# 6) dan beban berlebihan
← Kembali ke Akademi C#