متد Overloading در C#
روش بارگذاری متدها (Method Overloading) به این معناست که میتوانیم چند متد با یک نام یکسان داشته باشیم، اما تعداد یا نوع ورودیهای آنها (پارامترها) متفاوت باشد.
در این حالت، کامپایلر با توجه به نوع یا تعداد پارامترهایی که هنگام فراخوانی متد ارسال میکنیم، تشخیص میدهد که کدام متد را اجرا کند.
int MyMethod(int x)
float MyMethod(float x)
double MyMethod(double x, double y)
به مثال زیر توجه کنید که دو متد وجود دارد که اعداد با نوعهای مختلف را جمع میکنند.
static int PlusMethodInt(int x, int y)
{
return x + y;
}
static double PlusMethodDouble(double x, double y)
{
return x + y;
}
static void Main(string[] args)
{
int Num1 = PlusMethodInt(3, 8);
double Num2 = PlusMethodDouble(4.3, 6.26);
Console.WriteLine("Int: " + Num1);
Console.WriteLine("Double: " + Num2);
}
به جای تعریف دو متد که کار مشابهی انجام میدهند، بهتر است یکی را بارگذاری کنیم.
در مثال زیر، متد PlusMethod را طوری بارگذاری میکنیم که هم برای اعداد صحیح (int) و هم برای اعداد اعشاری (double) کار کند. این کار باعث میشود کد ما ساده تر و منظم تر باشد.
static int PlusMethod(int x, int y)
{
return x + y;
}
static double PlusMethod(double x, double y)
{
return x + y;
}
static void Main(string[] args)
{
int Num1 = PlusMethod(3, 8);
double Num2 = PlusMethod(4.3, 6.26);
Console.WriteLine("Int: " + Num1);
Console.WriteLine("Double: " + Num2);
}
نکته: چندین متد میتوانند نام یکسانی داشته باشند به شرطی که تعداد و یا نوع پارامترها متفاوت باشد. این ویژگی به ما اجازه میدهد که از نامهای مشابه برای عملکردهای مختلف استفاده کنیم.