Как объяснить вызовы метода? - PullRequest
2 голосов
/ 15 марта 2010

давайте рассмотрим небольшой метод:

int MyFunction(string foo, int bar)
{
  ...
}

и некоторые звонки:

MyFunction("",0)
int x = MyFunction(foo1,bar1)

Как бы вы объяснили это нетехническим лицам? У кого-нибудь есть хорошая метафора?

Я несколько раз пытался объяснить вызов метода (или приложения функции), но мне это не удалось. Кажется, я не могу найти правильные слова здесь.

С уважением, forki

ОБНОВЛЕНИЕ: Мне важно объяснить, как параметры передаются / сопоставляются.

Ответы [ 8 ]

4 голосов
/ 15 марта 2010

(Сильно нетехническое решение)

Это как сделать заказ:

  • Вызов метода = набор правильного номера
  • Передача аргументов = предоставление ваших данных
  • метод - это работа
  • Получение возвращаемого значения = получение того, что вы заказали
3 голосов
/ 15 марта 2010

Можно сказать, что функция - это доступный процесс в объекте, который может быть вызван другим. Допустим, «Вы» - это объект с функцией «Работа». Ваш "Босс" является объектом вызова. Затем ваш босс может вызвать вас на работу с другим типом (который является параметром).

В конце концов, ваш «Босс» может попросить «Вы» Работать («кодировать это») или Работать («проверить электронную почту») или Работать («закончить срок») и т. Д.

2 голосов
/ 15 марта 2010

Как насчет делегирования задачи? Представьте, что вы выпекаете торт и не хватает муки. Вместо того, чтобы покупать что-то самостоятельно, вы можете просто отправить ребенку инструкции по покупке муки Ввод: деньги, выход: мука.

1 голос
/ 15 марта 2010

Трудно понять концепцию "вызова метода", если вы сначала не понимаете
поток управления .

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

0 голосов
/ 15 марта 2010

Как насчет

  • Вызов функции: попросить программное обеспечение выполнить задачу xxx
  • Функция типа возвращаемого значения: попросите ваше программное обеспечение выполнить задачу xxx и сообщите вам результат операции
  • Вызов функции с параметром: Если X - это значение, а Y - это значение, попросите ваше программное обеспечение выполнить задачу xxx (и сообщить вам результат операции)
0 голосов
/ 15 марта 2010

Наилучший подход, вероятно, состоит в том, чтобы придумать пример для конкретного домена, к которому может относиться человек, которого вы объясняете. Если она работает с почтовым отделением, вы должны описать функцию " отправить письмо с этим текстом этому получателю ", где получатель - это параметр (содержащий адрес), а message - это параметр для текстового содержимого.

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

0 голосов
/ 15 марта 2010

Думайте о системе как о кассире за столом. Чтобы вызвать функцию, вы заполняете форму, чтобы попросить систему что-то сделать, передайте ее кассиру. Они уходят и выполняют работу, а затем возвращают вам лист бумаги с результатом, написанным на нем. В зависимости от того, что вы хотите, чтобы система делала, вы выбираете соответствующую форму.

Форма для MyMethod гласит:

MYMETHOD REQUISITION FORM:
String _______
int    _______

Эта аналогия может быть расширена различными способами. Разве не было бы удобно, если бы форма говорила вам, какова цель String и int? Вот где приходят языки с именованными параметрами.

Для ОО, вместо того, чтобы иметь один рабочий стол для всей системы, каждый объект является своим собственным кассиром, вы передаете им форму, и чтобы выполнить работу, они передают намного больше форм назад и вперед Другой. И т.д.

0 голосов
/ 15 марта 2010
C:: do(a ,b)

Вы говорите C do что-то, учитывая условия a и b.

...