Имя и список типов параметров являются важной характеристикой метода и называются СИГНАТУРОЙ метода. В C# методы, объявляемые в классе, идентифицируются по сигнатуре метода.
Эта особенность языка позволяет объявлять в классе множество одноименных методов. Такие методы называются перегруженными, а деятельность по объявлению таких методов – перегрузкой.
При написании программного кода, содержащего ВЫРАЖЕНИЯ ВЫЗОВА переопределённых методов корректное соотнесение выражения вызова метода определяет метод, которому будет передано управление.
// Класс содержит объявление четырёх одноименных методов
// с различными списками параметров.
class C1
{
void Fx(float key1)
{
return;
}
int Fx(int key1)
{
return key1;
}
int Fx(int key1, int key2)
{
return key1;
}
int Fx(byte key1, int key2)
{
return (int)key1;
}
static void Main(string[] args)
{
C1 c = new C1();
// Нестатические методы вызываются от имени объекта c.
// Передача управления соответствующему методу
// обеспечивается явными преобразованиями к типу.
c.Fx(Convert.ToSingle(1));
c.Fx(3.14F);
c.Fx(1);
c.Fx(1,2);
c.Fx((byte)10, 125);
}
}
Информация о типе возвращаемого значения при этом не учитывается, поскольку в выражении вызова возвращаемое значение метода может не использоваться вовсе.