این بحث overload هست . وقتی بحث یک متد با تعداد پارامتر دلخواه پیش میاد همه ذهنشون میره سمت overloading . در صورتی که overloaind نوشتن چند متد با انواع مختلف پارامتر هاست که میتونه تعدادشون هم فرق کنه . برای نوشتن فقط یک متد (و نه چند متد) با تعداد پارامتر دلخواه از کلمه کلیدی params استفاده می کنیم . به این صورت یک آرایه تعریف میشه که کاربر هرچی پارامتر بزنه میاد تو اون آرایه . مثال : متدی که هر تعداد عدد از نوع int را دریافت و مجموع آنها رو بر می گرداند .
public int Sum(params int[] numbers)
{
int s = 0;
for (int i = 0; i < numbers.Length; i++)
{
s += numbers[i];
}
return s;
}
حالا تو برنامه می تونیم اینطوری استفاده کنیم :
int n = Sum(2, 3, 4, 5);
MessageBox.Show(n.ToString());
n = Sum(10, 11);
MessageBox.Show(n.ToString());
n = Sum(12, 13, 14, 15, 16, 17, 18, 19, 20);
MessageBox.Show(n.ToString());
از این روش بیشتر برای ساخت برنامه های سیستمی مثل کامپایلر ها استفاده میشه .