Меняет ли порядок типов параметров сигнатуру метода в C#? - PullRequest
0 голосов
/ 24 апреля 2020

Для следующих методов: приводит ли порядок типов параметров к уникальным сигнатурам методов?

static void PrintOrderCost(double totalCost, string customerName)
{

}

Подпись метода выше: PrintOrderCost (double, string)

static void PrintOrderCost(string customerName, double totalCost)
{

}

Подпись метода выше: PrintOrderCost (string, double)

1 Ответ

4 голосов
/ 24 апреля 2020

Это указано в C# Спецификации языка :

Подпись метода состоит из имени метода, количества параметров типа и типа и вид (значение, ссылка или вывод) каждого из его формальных параметров, , рассматриваемый в порядке слева направо . [...]

Так что да, заказ является частью подписи, поэтому другой заказ - это другая подпись. Два показанных метода являются двумя перегрузками, потому что:

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

...