Перегрузка метода (полиморфизм) в C #

В этом блоге я собираюсь объяснить, что такое перегрузка метода, также известная как полиморфизм.

Допустим, нам нужны два разных метода с одинаковым именем. Если мы определим такие методы, это приведет к ошибке компилятора:

CS0111: Тип «Class_Name» уже определяет член с именем «MyMethod» с такими же типами параметров.

Но как мы можем справиться с этой ошибкой?

Итак, здесь была бы полезна перегрузка метода. По сути, перегрузка метода означает «определение метода с одним и тем же именем в разных формах». Их можно перегрузить тремя способами:

  • Имея разное количество параметров
  • Имея разные типы параметров
  • Другой порядок параметров

Это может сбить вас с толку, но вам не нужно об этом беспокоиться. Вы поймете их по мере вашего продвижения.

Таким образом, имея некоторую базовую информацию, мы можем приступить к их пониманию.

Имея разное количество параметров

Предположим, у нас есть методы MyMethod с двумя разными вариантами. Разница лишь в том, что у них разное количество параметров. Давайте посмотрим на пример:

public int MyMethod(int number)
{
 return number;
}
public int MyMethod(int firstNumber, int secondNumber)
{
 return firstNumber + secondNumber;
}

Как видите, оба метода имеют одинаковое имя, но их параметры разные. Первый принимает параметр целого типа number. Второй принимает два параметра с целым числом, называемым firstNumber и secondNumber. В результате нет ошибки компилятора, и все они работают нормально.

Итак, мы поняли первую часть полиморфизма. Если бы у вас не было проблем с этой частью, другие формы перегрузки метода были бы проще.

Теперь давайте посмотрим на второй способ перегрузки метода.

Имея разные типы параметров

В этом способе полиморфизма каждый метод будет принимать один параметр, но их типы данных будут разными.

Примечание: я использую типы данных int и string, но не забывайте, что вы можете использовать любые два разных типа.

В приведенном выше примере, как всегда, у нас одно и то же имя метода. Первый метод принимает целочисленное значение с именем number ,, а другой - со строковым значением с именем name..

Вы можете видеть, как эти два способа полиморфизма похожи друг на друга. Точно так же третий способ будет таким же простым, как и первые два.

Чтобы увидеть, насколько они похожи, продолжайте читать о третьем варианте перегрузки метода.

Имея разный порядок параметров

В первом варианте у нас было другое количество параметров. Во втором варианте у нас были разные типы параметров. Теперь у нас будет такое же количество параметров, но они будут в другом порядке.

Чтобы понять, см. Следующее:

int myNumber;public void MyMethod(int number, string name)
string myName; 
{
 myNumber = number;
 myName = name;
}
public void MyMethod(string name, int number)
{
 myName = name;
 myNumber = number;
}

Как видите, они принимают одни и те же параметры в разном порядке. Сначала берет number, затем name. Второй делает этот процесс в обратном порядке. То есть, во-первых, берет name, во-вторых, занимает number.

Заключение

Подводя итог, можно сказать, что перегрузка методов - одна из самых важных тем в программировании. Представьте, что если вы не используете это, вы придумаете разные имена для методов, которые выполняют похожие задачи. В результате мы поняли, что такое перегрузка метода и как она используется. Надеюсь, это помогло вам и вам понравилось.