C# 什么';这两者之间的区别是什么;调用;及;调用";?

C# 什么';这两者之间的区别是什么;调用;及;调用";?,c#,terminology,C#,Terminology,我目前正在读丹尼尔·m·索利斯的一本书《插图C#2010》。书中说: “当调用或调用方法时…” 这两个术语之间的区别是什么?函数调用是指您自己在程序中调用函数。而函数调用是在自动调用时进行的 例如,考虑这个程序: struct s { int a,b,s; s() { a=2; b=3; } void sum() { s=a+b; } }; void main() { struct s obj; //line 1 obj.sum(

我目前正在读丹尼尔·m·索利斯的一本书《插图C#2010》。书中说:

“当调用或调用方法时…”


这两个术语之间的区别是什么?

函数调用是指您自己在程序中调用函数。而函数调用是在自动调用时进行的

例如,考虑这个程序:

struct s
{
  int a,b,s;

  s()
  {
    a=2;
    b=3;
  }

  void sum()
  {
    s=a+b;
  }
};

void main()
{
  struct s obj; //line 1
  obj.sum(); // line 2
}
这里,当执行第1行时,调用函数(构造函数,即s)。 当执行第2行时,调用函数sum


来源:web

方法调用是一个术语,通常指由于直接调用方法(函数)存在问题或困难而间接调用方法(函数)

例如,在并行编程环境中:考虑一个应用程序空间中的两个线程并行运行。调用驻留在另一个线程上的对象的公共方法会引发跨线程调用异常,因为可能发生争用。解决方案是调用该对象来执行该方法,并将作业的其余部分交给该对象来管理并行请求


另一个例子是当您有一个委托指向某个方法时。当您要求代理调用该(未知)方法时,您调用该方法以运行。

可能他只是认为术语“call”和“Invoke”是同义词,只是想提及这两个词,因为这两个术语在野外都可能遇到。在这种情况下,难道不可能使用吗?

根据我的研究(个人和无薪),查看这些术语在编程文献中的常见用法&“在野外”,我发现这些定义似乎适合它们的用法

执行指的是运行代码的过程。确切的方法不重要,可以编译或不编译,由计算机完成或不

Application/Application指将参数绑定到函数。应用程序可以是部分的,也可以是完整的。从函数式编程的世界来看,部分应用程序生成另一个参数较少的函数,而完整应用程序生成thunk。Thunk是没有参数的函数,可以帮助进行“惰性评估”

调用/Invocation指调度函数及其完全绑定参数以执行所需的过程。此类系统包括将参数推送到堆栈上,并将PC传输到新地址,将消息/对象/函数/thunk放在队列上以供稍后执行或各种其他RPC系统。确切的机制并不重要。未来执行计划的概念。调用需要执行will函数

呼叫是该批次中定义最少的呼叫。通常是指完全应用函数然后调用它的组合过程,通常添加了代码将等待返回值的语义


还请注意,从正在编写的当前代码的角度来看,所有这些术语都是主观的。通过RPC调用调用函数只是从客户端调用它。如果函数作为服务器端的函数具有任何“意义”,则从服务器端请求具有不同的调用点。

当您在代码中直接执行该方法时,它被称为调用。当其他人为您执行时,它正在调用。这是我从
Control.Invoke
方法中理解的。

调用“Invoke”似乎意味着通过中间机制间接调用方法。我相信作者们会模糊其确切含义。但是,他们必须试图描述一种调用方法的不同方式,否则这个术语一开始就不会出现

此外,“调用”的一般(非计算机)定义通常意味着向更高的权力机构求助。这将转化为请求中间实体帮助完成某件事情。

简单的“调用”是指保证该方法将被调用 “invoke”是指我们只是要求在适当的时间调用方法

比如说 主线程(GUI)可以通过调用
但是,当您有另一个线程想要修改控件时,只要让主线程在准备就绪时这样做就可以了。

据我所知,调用一个方法是很正常的,就像:
method(params)和调用方法就像从不同的线程调用一样。-你的例子是非法的。
struct
无法显式声明无参数实例构造函数。字段(或其他类型成员)不能与包含类型具有相同的名称
s
。对于
结构
,在控件离开构造函数之前,必须明确分配所有实例字段。“第1行”中的语法完全无效。这应该是C#。@JeppeStigNielsen C'mon这不是为了校对代码。这只是为了理解两者之间的区别。我希望OP能理解,但我不明白其中的区别。是
new
对象表达式,如
newmytype(x,y)“调用”您的术语中的构造函数?我想问题是关于调用/调用方法,但在您看来,“调用”用于构造函数,而“调用”用于方法吗?@JeppeStigNielsen看到,每当我们创建一个对象时,它的构造函数会自动调用,这个过程称为调用。在您的情况下,是调用构造函数称为调用。构造函数也是一种方法。所以我想我没有跑题。我唯一没有做对的事情就是发布了一个c代码。