Optional parameter sudah dikenal sejak lama di VB, namun sampai C# 3.0 optional parameter belum diterapkan. Untuk membuat optional parameter biasanya para developer C# menggunakan overload method seperti contoh berikut.
// Overload tanpa parameter
public static string SelamatPagi()
{
return "Selamat pagi, semua!";
}
// Overload method dengan parameter
public static string SelamatPagi(string nama)
{
return "Selamat pagi, " + nama + "!";
}
Dengan demikian, kita bisa mengakses method SelamatPagi dengan maupun tanpa parameter. Untuk memanggil method tersebut, perhatikan contoh berikut.
// nama merupakan optional
SelamatPagi();
// overload dengan parameter
SelamatPagi("agus");
Jika Anda memiliki method dengan banyak optional parameter, Anda akan membuat overload method sebanyak optional parameter tersebut. Hal ini menjadikan method kode kita semakin panjang. Dengan menggunakan C# 4.0, kita dapat menyingkirkan overload method dengan optional parameter seperti contoh berikut.
// Method dengan optional parameter
public static string SelamatPagi(string nama = "semua")
{
return "Selamat pagi, " + nama + "!";
}
Potongan kode di atas dapat diakses dengan cara yang sama dengan overload method. Ketika parameter tidak diisikan, maka nilai default yang akan digunakan.