Если я создаю этот метод
public void foo()
И тогда я создаю перегруженную версию, как это
public void foo( string bar )
Говорим ли мы, что вторая функция перегружает первую, или оба метода одинаково «перегружены»?
Это подразумевает (я думаю), что есть функция базового типа, которая перегружается другой функцией (что-то вроде наследования, но не совсем).
Предполагая, что один метод может «перегрузить другой», также подразумеваются такие термины, как «перегрузчик» и «перегрузка», если это вообще слово. Но это не совсем правильно, тем более что у вас может быть несколько перегрузок.
Я добрался до этого вопроса, когда хотел записать процесс создания перегруженного метода, и я хотел найти наиболее правильный способ его записи.
Примеры:
- Я перегружаю
foo
- Я перегружать
foo
сfoo( string bar )
- Я создаю перегруженный метод
- Я делаю фу перегружен
Так что да, это заставило меня задуматься, я не уверен, что с этим делать. Существуют сотни, если не тысячи, описаний перегрузок функций в сети, но на первый взгляд я не смог найти никакого решения по этому поводу.
источник
Ответы:
Когда речь идет о перегрузках, перегружается имя функции, а не сама функция. Функции, перегружающие имя, являются «перегрузками» и перегружают имя, но не друг друга. В вашем примере и то,
"public void foo()"
и"public void foo( string bar )"
другое перегружают именем «foo». Следовательно, вы не можете говорить с точки зрения перегрузчика и перегрузщика одной из функций, потому что они не имеют прямой связи.В ваших примерах вы можете сказать, что вы перегружаете "foo" (имя) с помощью "foo (строка строки)" (функция), но вы не можете сказать, что вы создали перегруженный метод, потому что методы никогда не перегружаются. Вы можете сказать, что вы создаете метод перегрузки. Формулировать «создание перегруженного foo» - это просто худший способ сказать «перегрузить foo».
источник
Я бы просто сказал
foo
перегружен. Здесь, безусловно, не происходит никаких отношений хозяин / раб или родитель / ребенок.источник
Я думаю, что хороший способ выразить это - сосредоточиться на конечном результате, а не на изменениях, внесенных в класс с течением времени. Таким образом, вместо того, чтобы сказать «Я перегружал« foo »с помощью« foo (другие параметры) »», вы говорите: «foo - перегруженная функция с« foo () »и« foo (другие параметры) ».
источник