让我们考虑一个小方法:
int MyFunction(string foo, int bar)
{
...
}
和一些电话:
MyFunction("",0)
int x = MyFunction(foo1,bar1)
您如何向非技术人员解释这一点?谁有一个很好的比喻?
我多次尝试解释方法调用(或函数应用程序),但都失败了。好像在这里找不到合适的词。
问候,叉子
更新:对我来说,解释参数是如何传递/匹配的很重要。
让我们考虑一个小方法:
int MyFunction(string foo, int bar)
{
...
}
和一些电话:
MyFunction("",0)
int x = MyFunction(foo1,bar1)
您如何向非技术人员解释这一点?谁有一个很好的比喻?
我多次尝试解释方法调用(或函数应用程序),但都失败了。好像在这里找不到合适的词。
问候,叉子
更新:对我来说,解释参数是如何传递/匹配的很重要。
(高度非技术性的解决方案)
这就像下订单:
你可以告诉函数是一个可以被其他对象调用的进程。可以说“你”是一个具有“工作”功能的对象。你的“老板”是调用者对象。然后你的老板可以打电话给你使用不同的类型(这是参数)。
最后你的“老板”可以要求“你”工作(“编码这个”)或工作(“检查电子邮件”)或工作(“完成截止日期”)等。
委派任务怎么样?想象一下,你正在烤一个蛋糕,但面粉用完了。与其自己买一些,不如给你的孩子发送购买面粉的说明。输入:钱,输出:面粉。
如果不先了解
控制流程,就很难理解“方法调用”的概念。
一个简单的解释是,方法或例程是一种用于打包指令的构造,
以便重用它们并使代码更具可读性。
临时调用方法会将执行流程切换到该方法。
C:: do(a ,b)
鉴于条件和C
,您正在告诉某事。do
a
b
最好的方法可能是想出一个特定领域的例子,你正在解释的人可以与之相关。如果她在邮局工作,您应该描述功能“将带有此文本的信件发送给此收件人”,其中收件人是一个参数(包含地址),消息是文本内容的参数。
只要您有每个参数的名称,参数顺序并不重要。试图解释为什么顺序在某些晦涩难懂的编程语言中很重要是徒劳的。
怎么样
将系统想象成办公桌上的出纳员。要调用一个函数,你需要填写一个表格来要求系统做某事,把它交给出纳员。他们开始工作,然后给你一张纸,上面写着结果。根据您希望系统执行的操作,您可以选择适当的表格。
MyMethod 的表格说:
MYMETHOD REQUISITION FORM:
String _______
int _______
这个类比可以以各种方式扩展。如果表单告诉您 String 和 int 的用途是什么,那不是很方便吗?这就是具有命名参数的语言的用武之地。
对于 OO,不是为整个系统配备一张桌子,而是每个对象都是自己的出纳员,您将一张表格交给他们,为了完成工作,他们在彼此之间来回交出更多表格。等等。