Метод считается перегруженным, если число параметров отличается или типы параметров различны, но не могут быть перегружены, если отличается только возвращаемый тип метода (который не будет компилироваться).
например. ниже 3 считается перегруженным, а четвертый не будет перегружен и даже не будет компилироваться, если присутствуют другие 3:
public int Add(int a, int b); // Method 1, overloaded
public int Add(int a, int b, int c); // Method 2, overloaded
public int Add(double a, double b); // Method 3, overloaded
public double Add(double a, double b); // Method 4 (invalid, will conflict with Method 3 above)
Согласно MSDN
по Signatures and overloading (C#)
:
Сигнатура метода состоит из имени метода, а также типа и типа (значения, ссылки или вывода) каждого из его формальных параметров, рассматриваемых в порядке слева направо. Сигнатура метода специально не включает тип возвращаемого значения и модификатор params, который может быть указан для самого правого параметра.