Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan
Takrifkan tandatangan kaedah dan nilai pulangan, gunakan kaedah berbadan ungkapan, parameter pilihan/bernama, ref/out, dan fahami beban berlebihan. Nota: tiada fungsi setempat dalam C# 6.
Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan ialah pelajaran Akademi C# percuma di CoddyKit. Ini ialah pelajaran 1 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.
Asas kaedah
Matlamat: Takrifkan kaedah yang kemas: tandatangan (nama, parameter, jenis pulangan), badan yang ringkas dan kelakuan yang boleh dijangka.
- Nilai pulangan
- Kaedah berasaskan ungkapan
- Parameter pilihan/bernama
Tandatangan dan pulangan
Sesuatu kaedah mempunyai nama, parameter dan jenis pulangan. Pastikan nama jelas dan berfokus.
using System;
public class MathUtil
{
// Signature: name Add, parameters (int a, int b), return int
public static int Add(int a, int b)
{
return a + b;
}
}
public class Program
{
public static void Main(string[] args)
{
int s = MathUtil.Add(2, 3);
Console.WriteLine("Sum = " + s);
}
}
Kaedah berasaskan ungkapan
Kaedah berasaskan ungkapan menggunakan => untuk helpers yang kecil dan jelas.
using System;
public static class FormatUtil
{
// Expression-bodied method (C# 6): concise one-liner
public static string Greet(string name) => "Hello, " + name + "!";
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(FormatUtil.Greet("Ada"));
}
}
Pilihan dan bernama
Gunakan parameter pilihan untuk nilai lalai yang munasabah dan argumen bernama demi kejelasan pada tapak panggilan.
using System;
public static class Logger
{
// Optional parameter: times has a default
public static void Log(string message, int times = 1)
{
for (int i = 0; i < times; i = i + 1)
{
Console.WriteLine(message);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Logger.Log("One time"); // uses default
Logger.Log(message: "Twice", times: 2); // named arguments
}
}
Asas ref dan out
ref: pemboleh ubah mesti diberikan nilai sebelum panggilan. out: kaedah mesti memberikan nilai sebelum kembali.
using System;
public static class RefOutDemo
{
public static void Increment(ref int x)
{
x = x + 1; // modifies caller's variable
}
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 n = 10;
RefOutDemo.Increment(ref n);
Console.WriteLine("n = " + n); // 11
int r;
bool ok = RefOutDemo.TryDivide(9, 0, out r);
Console.WriteLine("ok=" + ok + " r=" + r);
}
}
Lebihan muatan dan nota
Lebihan muatan menggunakan semula nama untuk operasi yang berkaitan. Nota: fungsi setempat muncul dalam versi C# yang lebih baharu; dalam C# 6, gunakan helpers peribadi yang kecil.
using System;
public static class Calc
{
// Overloads: same name, different parameter lists
public static int Area(int side) { return side * side; }
public static int Area(int width, int height) { return width * height; }
// C# 6 has no local functions; use private helpers instead.
private static int DoubleIt(int x) { return x + x; }
public static int TwiceArea(int side)
{
int a = Area(side);
return DoubleIt(a);
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Area square 3 = " + Calc.Area(3));
Console.WriteLine("Area rect 3x4 = " + Calc.Area(3, 4));
Console.WriteLine("Twice area of 3 = " + Calc.TwiceArea(3));
}
}
Peraturan ref berbanding out
Rumusan
Rumusan: Reka bentuk tandatangan, nilai pulangan dan helpers kecil berasaskan ungkapan yang jelas; gunakan parameter pilihan/bernama untuk kebolehbacaan; fahami ref berbanding out; gunakan lebihan muatan dengan berhati-hati. Fungsi setempat hadir dalam C# yang lebih baharu—gunakan helpers peribadi dalam C# 6.
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 “Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan” percuma?
Ya — teks penuh “Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan” 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 “Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan”?
Takrifkan tandatangan kaedah dan nilai pulangan, gunakan kaedah berbadan ungkapan, parameter pilihan/bernama, ref/out, dan fahami beban berlebihan. Nota: tiada fungsi setempat 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 1 daripada 3.
Berapa lamakah pelajaran “Tandatangan, pulangan; berbadan ungkapan; pilihan/bernama; ref/out; beban berlebihan” 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