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.
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
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.
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
- Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan
- Parameter pilihan/bernama; ref/out/in (asas)
- Fungsi setempat (nota C# 6) dan beban berlebihan