问题标签 [late-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
683 浏览

design-patterns - “后期绑定”和“控制反转”是什么关系?

对 OOP 的定义中,Alan Kay 指出他支持“所有事物的极端后期绑定”。他对后期绑定的兴趣是否与人们对 IoC 的兴趣具有相同的动机?

特别是,如果说两者都是出于“尽可能少地指定,而将实现细节留待以后填写”的概念,是否正确?

0 投票
2 回答
541 浏览

oop - 猴子修补/重新开放真的是反思的一个例子吗?

为这个问题的递归性质道歉,但对 SO 问题的选择答案让我质疑我对反射的理解。

我认为反射主要是关于在程序运行时查询程序的内部事件。此响应中给出的示例修补了 Ruby 的内置 Integer 类。

  • 这不是更像函数重载/继承而不是运行时修改吗?
  • 重新开课真的是反思的一个例子吗?
0 投票
10 回答
94388 浏览

c# - 使用 GetType().Name 在事件处理程序中投射发件人对象

我有一个文本框和 RichTextBox 的事件处理程序。代码相同,但

在处理程序#1中,我这样做:

相应地在处理程序#2中:

这样做我可以完全操纵发送控制。我想知道的是如何根据其类型将发送对象转换为 Textbox 或 RichTextbox

然后在运行时创建控件并使用它。这样我只需要一个事件处理函数:更少的代码、更少的错误、更容易维护和 DRY :-)

0 投票
2 回答
15147 浏览

.net - Createinstance() - 我这样做对吗?

我正在尝试用.NET 组合一个插件系统,但我不确定我是否做得正确。系统的基础是特定目录({apppath}/Plugins/)将有一堆预编译的 DLL,我想通过反射查看每个目录,以及每个可用的类,如果它继承了特定的基类(这是在另一个 DLL 中定义的,但我稍后会介绍),然后创建它的一个实例并在所述实例中调用一个特定的函数。

我遇到的具体问题是,我不确定这是正确的方法。如果可以假设A.Plugin()实际存在并且此处引用的任何结构和类都没有错误,那么我尝试使用的方法是否有效?如果有人需要更多代码来提供帮助,我可以发布它。

0 投票
4 回答
3521 浏览

vb.net - 在 COM 对象上使用早期绑定

我有这段代码运行良好,并为我提供了用户开始菜单的路径:

这显然使用了后期绑定。现在说我想在 C# 或 VB.NET 严格模式下执行此操作,它们都不支持这种带有后期绑定的语法。

这可能吗?如何?

谢谢你的帮助!

0 投票
4 回答
3352 浏览

c# - 我可以晚绑定到 C# 中的事件处理程序吗?

我正在动态创建对象并将它们插入到 html 表中,对象是标签或链接按钮,如果它们是链接按钮,我需要为点击事件订阅事件处理程序,但我正在努力寻找一种方法来实际添加处理程序。到目前为止的代码是:

0 投票
1 回答
3485 浏览

vb.net - 如何使用后期绑定调用带有 ByRef 参数的方法

我有一个 COM 组件,我想使用 VB.NET 的后期绑定来调用它(使用痛苦的 Primary Interop Assembly - PIA 方法)

我的 COM 方法的 IDL 签名如下所示:

所以 VB.NET 术语中的 2 个“ByRef”参数和一个返回值。

我尝试像这样调用这个方法:

这失败了一个异常:{“无效的被调用者。(来自HRESULT的异常:0x80020010(DISP_E_BADCALLEE))”}

我认为这意味着我在 parameterMods 数组中做错了。因为如果我注释掉将 ParameterMods 数组的任何值设置为“True” - 它会起作用。它当然不会更新 [out] 参数的参数,因此它没有按预期工作。

由于该方法也有返回值,还有其他需要考虑的吗?MSDN 示例几乎完全符合我的要求,只是该示例没有返回值。任何帮助表示赞赏。

0 投票
2 回答
2571 浏览

c# - C# 程序集加载和后期绑定

我正在阅读本关于 C# 和 .NET 的书,并且正在学习很多很酷的东西。我已经阅读了作者谈论动态加载程序集并在该程序集中创建类型实例的部分。

在 AS3 中,可以做同样的事情,除了一件事:您可以要求编译器不编译一组类,而是检查类型安全。这是一个例子:

在我的应用程序代码运行时,我可以动态加载包含类 A 定义的外部库,将这些定义加载到我的应用程序的 ApplicationDomain 中,一切都会运行良好。不需要反思!

这在 C# 中可能吗?

换句话说,我可以指示 C# 编译器对一堆类(比如说,在库中)进行类型检查,但将它们排除在编译之外吗?

0 投票
4 回答
1451 浏览

vb6 - 如何传递后期绑定参数

在 VB6 中,我试图将后期绑定的对象传递给另一种形式。

frmMain.vb

对话框

y 的内容是一个字符串,其中包含后期绑定对象的类型名称“MyOwn.Object”。ByVal 和 ByRef 没有区别。有什么线索吗?难以记忆。

0 投票
3 回答
185 浏览

c# - 需要帮助在 C# 中定义接口

我有一个数据驱动的映射应用程序,我需要在其中将自定义功能实现为插件。我需要执行的自定义方法的名称也将在映射数据中。我知道我可以使用 invoke 命令调用该方法;但是,如何确保每种方法都有适当的签名?