2015-01-21 4 views
0

В принципе, вопрос подытожен в названии. Если у нас есть два метода/функции с одной и той же сигнатурой (то есть имя, тип и порядок параметров, число параметров типа генериков) в разных пространствах имен, считается ли это перегрузкой?Терминология - методы декларирования в разных пространствах имен считаются перегрузкой

Это вопрос на C#, но я бы хотел найти ответ для разных языков ООП.

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

+2

Я не думаю, что количественно перегружает. Хотя они имеют одинаковое имя, если они различаются в пространстве имен или классе, они, согласно [Перегрузка члена] (https://msdn.microsoft.com/en-us/library/ms229029 (v = vs.110) .aspx) из Microsoft, не являются перегрузками. – CalebB

+2

Вы не можете объявить метод непосредственно в пространстве имен. – Blorgbeard

+1

Как заметил @Blorgbeard, это не похоже на вопрос C#, поскольку то, что вы описываете, невозможно в C# (по крайней мере, до 5) из-за отсутствия глобальных методов. Вы можете пояснить, о чем вы говорите, на примере. –

ответ

1

Перегрузка происходит, когда у вас есть несколько методов в текущем классе с тем же именем, но с другой подписью. Объем перегрузки методы является «В текущем классе»

public class Math2 
{ 
// This one's for squares 
public static double Area(double side) 
{ 
    return side * side; 
} 

// This one's for rectangles 
public static double Area(double length, double height) 
{ 
    return length * height; 
} 
} 

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

+0

Спасибо, это звучит логично – Mints97