Под перегрузкой методов понимается, создание нескольких методов (два или более) с одинаковым именем, но различным типом и/или количеством параметров.
Наборы параметров перегруженных методов могут отличаться порядком следования, количеством, типом. Перегруженные метода могут отличаться наличием ref/out
аргументов, но только в том случае, если они имеются только у одного метода. Если единственное различие между методами заключается в том, что один метод принимает аргумент ref
, а другой – out
, они не могут быть перегружены.
Таким образом, перегрузка методов необходима для того, чтобы избежать создания нескольких разноименных методов, выполняющих сходные действия.
Пример перегрузки метода Function
и их вызовов:
// Перегруженные методы могут отличаться типом и количеством аргументов, а также ref и out параметрами.
static void Function() // 1-я перегрузка.
{
Console.WriteLine("Hello!");
}
static void Function(string s) // 2-я перегрузка.
{
Console.WriteLine(s);
}
// Перегруженные методы не могут отличаться возвращаемыми значениями!
//static string Function(string s)
//{
// return s;
//}
static void Function(int i) // 3-я перегрузка.
{
Console.WriteLine(i);
}
static void Function(double d) // 4-я перегрузка.
{
Console.WriteLine(d);
}
static void Function(string s, int i) // 5-я перегрузка.
{
Console.WriteLine(s + i);
}
static void Function(int i, string s) // 6-я перегрузка.
{
Console.WriteLine(i + s);
}
static void Function(ref int i, string s) // 7-я перегрузка.
{
Console.WriteLine(i + s);
}
// Перегруженные методы не могут отличаться друг от друга только параметрами ref и out!
//static void function(out int i, string s)
//{
// i = 5;
// console.writeline(i + s); // 9-я перегрузка.
//}
static void Main()
{
Function(); // 1-я перегрузка.
Function("A"); // 2-я перегрузка.
Function(1); // 3-я перегрузка.
Function(3.14); // 4-я перегрузка.
Function("B ", 2); // 5-я перегрузка.
Function(3, " C"); // 6-я перегрузка.
int variable = 5;
Function(ref variable, "D"); // 7-я перегрузка.
// Delay.
Console.ReadKey();
}
Источник: видеоурок Александра Шевчука "МЕТОДЫ. РЕКУРСИЯ"