电话网站解释?

扫描互联网,我很难以一种简单的方式理解 – 术语呼叫网站(@dlr)。 我一直在这里读到CallSite是:

一个网站说

调用方法的位置。

一本书说:

呼叫网站。 这是DLR的一种primefaces – 可以被视为单个单元的最小代码片段。 一个表达式可能包含许多呼叫站点,但行为是以自然方式构建的,一次评估一个呼叫站点。 对于剩下的讨论,我们一次只考虑一个呼叫站点。 有一个小的呼叫站点示例是有用的,所以这里是一个非常简单的,其中d当然是动态类型的变量

d.Foo(10); 调用站点在代码中表示为System.Runtime.CompilerServices.CallSite。

另一本书说:

编译器发出的代码最终会生成一个描述操作的表达式树,由DLR在运行时绑定的调用站点管理。 呼叫站点本质上充当呼叫者和被呼叫者之间的中介。

对不起,我不知道这3个解释在哪里合并为一个简单的解释。

我很乐意得到一个简单的解释:

我可以解释一下我的妻子 – 电话网站是什么?

第一种解释与dlr或动态类型无关:简单来说,调用站点是源代码中调用方法的位置(或站点)。

在实现动态类型时,有必要存储有关代码中包含的动态方法调用的信息,因此可以在运行时调用它们(dlr需要查找方法,解决重载等)。 表示此信息的对象也应称为“呼叫站点”,这似乎很自然。

好的,这就是我的看法。

对于此示例,调用就像一个执行某些代码并返回的方法或函数。

对于静态语言运行时程序(C或CLR等),调用站点实际上是进行函数调用的地方。 它是呼叫将在正常(非特殊)流程中返回的位置。 由于这是一个静态程序,因此调用站点只是一个内存位置,被推入堆栈。

对于动态语言程序(Ruby,Python等),您调用的代码直到运行时才会计算出来。 这意味着需要某种forms的逻辑来管理进行正确函数调用的过程,然后在调用之后进行清理(如果需要)。 如果动态语言程序在.NET 4上,则使用System.Runtime.CompilerServices.CallSite类型的dlr(动态语言运行时)对象完成。 因此,调用将返回CallSite对象中的方法,然后返回到原始调用的位置。

所以答案是,这取决于你如何进行通话以及你正在使用的平台。