代码之家  ›  专栏  ›  技术社区  ›  Anindya Chatterjee

委托的构造函数和成员函数在哪里定义?

  •  2
  • Anindya Chatterjee  · 技术社区  · 15 年前

    当我看着 Action

    public Action(object @object, IntPtr method);
    

    但我找不到与其他成员函数类似的 Invoke , BeginInvoke 等等,我只能看到它的定义。这些函数是在哪里定义的?它们是在.net BCL之外定义的吗?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Jon Skeet    15 年前

    委托基本上是由CLR专门处理的。编译器提供签名,但CLR知道如何处理它们。

    ECMA-335 分区我说的是:

    委托是面向对象的函数指针的等价物。与函数指针不同,委托是 面向对象、类型安全和安全。委托是通过定义从基类型派生的类来创建的 系统.委托(见第四部分)。每个委托类型都应提供一个名为Invoke的方法

    除了实例构造函数和调用方法之外,委托还可以有两个附加的 方法:BeginInvoke和EndInvoke。它们用于异步调用。

    受约束的。这些方法的实现是由VES提供的,而不是用户代码。唯一额外的

    (虚拟执行系统是虚拟执行系统;CLR是微软对虚拟执行系统的实现。)