Если вы хотите вызвать функцию, просто вызовите ее так же, как и любую другую:
montarMenu(this);
Хорошо, я понял тонкое различие, где перегрузка функции отличается от нескольких-отправок.
В основном, различие то, ли, какой метод звонить выбран в или время компиляции во время выполнения. Теперь, я знаю, что все сказали это, но без ясного примера это звучит ОЧЕНЬ очевидным, учитывая, что C# со статическим контролем типов, и языки нескольких-отправок (по-видимому, мне, по крайней мере), кажется, с динамическим контролем типов. До сих пор, только с, что несколько-отправок определения и перегрузка функции, которой звучат точно то же мне.
случай, где это вносит реальные изменения, - когда у Вас есть 2 перегрузки метода, которые расходятся в типе параметра, но 2 типа являются полиморфными, и Вы звоните со ссылкой объявленный как более высокий тип, который имеет объект более низкого типа... (Если кто-то может думать о лучшем способе выразить это, не стесняйтесь редактировать этот ответ)
Пример:
int CaptureSpaceShip(IRebelAllianceShip ship) {}
int CaptureSpaceShip(XWing ship) {}
void Main() {
IRebelAllianceShip theShip = new XWing();
CaptureSpaceShip(theShip);
}
XWing, очевидно, реализует IRebelAllianceShip. В этом случае первый метод назовут, тогда как, если бы C# реализовал несколько-отправок, второй метод назвали бы.
Извините за рехеширование документа... Это кажется мне самым ясным способом объяснить это различие, вместо того, чтобы просто читать определения для каждого метода отправки.
Для более формального объяснения: http://en.wikipedia.org/wiki/Double_dispatch#Double_dispatch_is_more_than_function_overloading
C# является единственной отправкой, но существуют некоторые сообщения в блоге, который их заголовком похож, они пытаются эмулировать мультиметоды. Если я могу заставить одну из статей загружаться, я обновлю свой ответ здесь.
C# не поддерживает, несколько диспетчеризируют. Шаблон разработки Посетителя эмулирует что-то, что могло быть описано, поскольку несколько диспетчеризируют, даже при том, что Шаблон "посетитель" главным образом фокусирует на отдельном алгоритм от иерархии.
Согласно процитированная статья Wikipedia, которую несколько диспетчеризируют, по определению, основана на типах выполнения включенных объектов, таким образом, C# и VB.net не делают использование она, потому что решение принято, как Вы заявляете, во время компиляции.
Шаблон "посетитель" GoF является примером того, как сделать двойную отправку. Scott Meyers "Более эффективный C++" показывает Вам, как сделать это в C++. Вот ссылка от доктора Dobbs, который говорит о том, как сделать двойную отправку и в Java и в C++.