Kaedah ialah fungsi yang ditakrifkan dalam sesebuah kelas. C# menyokong ciri parameter yang kaya — argumen pilihan/bernama, pengubah suai ref/out/in, array — dan (berbilang kaedah dengan nama yang sama tetapi parameter yang berbeza).
Kaedah ialah fungsi yang ditakrifkan dalam sesebuah kelas. C# menyokong ciri parameter yang kaya — argumen pilihan/bernama, pengubah suai ref/out/in, array — dan (berbilang kaedah dengan nama yang sama tetapi parameter yang berbeza).
paramspublic int Add(int a, int b) => a + b; // expression-bodied (concise)
public string Greet(string name, string greeting = "Hello") // default parameter
{
return $"{greeting}, {name}";
}
Greet("Ann"); // "Hello, Ann"
Greet("Ann", greeting: "Hi"); // named argument
Kaedah menentukan jenis pulangan, nama, dan parameter. Parameter lalai menjadikan argumen pilihan, dan argumen bernama membolehkan anda menghantar mengikut nama (lebih jelas, boleh melangkau pilihan).
// ref — pass by reference (method can modify the caller's variable)
void Increment(ref int x) { x++; }
int n = 5; Increment(ref n); // n is now 6
// out — for returning multiple values (must be assigned in the method)
bool TryParse(string s, out int result) { result = ...; return true; }
if (int.TryParse("42", out int value)) { } // the common TryX pattern
// in — pass by reference but READ-ONLY (performance for large structs)
void Process(in LargeStruct data) { }
out digunakan secara meluas dalam corak TryParse (memulangkan bendera kejayaan ditambah hasil dengan selamat); ref membolehkan pengubahsuaian pemboleh ubah pemanggil; in menghantar struct besar dengan cekap tanpa penyalinan.
// params — variable number of arguments
int Sum(params int[] numbers) => numbers.Sum();
Sum(1, 2, 3, 4); // any number
// OVERLOADING — same name, different parameters
void Print(int x) { }
void Print(string s) { }
void Print(int x, int y) { }
Print(5); // calls the int version — resolved by argument types
Overloading membolehkan berbilang kaedah berkongsi nama, dibezakan mengikut jenis/bilangan parameter — pengkompil memilih yang sepadan. params menerima bilangan argumen yang berubah-ubah.
Kaedah ialah blok binaan tingkah laku dalam C#, dan memahami ciri parameternya yang kaya adalah penting untuk menulis kod yang fleksibel dan ekspresif.
Mengetahui cara mentakrifkan kaedah (termasuk sintaks expression-bodied yang ringkas), menggunakan parameter lalai dan bernama (untuk argumen pilihan dan panggilan yang mudah dibaca), serta menerapkan method overloading (nama sama, parameter berbeza — untuk API intuitif yang mengendalikan jenis argumen yang berbeza) ialah pengetahuan harian.
Pengubah suai parameter amat penting untuk difahami: out digunakan secara meluas dalam corak TryParse yang berleluasa (int.TryParse(s, out var result) — memulangkan bendera kejayaan dan hasil dengan selamat tanpa pengecualian, satu corak C# yang biasa dan idiomatik), ref membolehkan pengubahsuaian pemboleh ubah pemanggil, dan in menghantar struct besar mengikut rujukan untuk prestasi.
Memahami perkara ini — kaedah, ciri parameter (pilihan/bernama/params), overloading untuk API yang fleksibel, dan pengubah suai ref/out/in (terutamanya idiom TryParse berasaskan out) — adalah asas untuk menulis kaedah C# dan menggunakan banyak API .NET yang bergantung pada ciri-ciri ini.
Memandangkan kaedah dan parameternya adalah pusat kepada semua kod C#, dan memandangkan ciri seperti overloading, parameter pilihan, dan corak TryX muncul secara berterusan, menguasainya ialah pengetahuan teras yang wajib diketahui untuk pembangunan C# yang berkesan.