Questions tagged «late-binding»

9
词汇闭包如何工作?
当我研究Java代码中的词法闭包问题时,我遇到了Python中的这个问题: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) 请注意,此示例应避免使用lambda。它打印“ 4 4 4”,这是令人惊讶的。我希望“ 0 2 4”。 等效的Perl代码可以正确执行此操作: my @flist = (); foreach my $i (0 .. 2) { push(@flist, sub {$i * $_[0]}); } foreach my $f (@flist) …


7
早期和晚期绑定
当C#中发生早期/晚期绑定时,我想尽我所能。 非虚拟方法始终是早期约束。虚拟方法总是晚绑定的:编译器插入额外的代码来解析在执行时绑定到的实际方法,并检查类型安全性。因此,亚型多态性使用后期绑定。 使用反射的调用方法是后期绑定的一个示例。我们编写代码来实现此目的,而不是编译器。(例如,调用COM组件。) 关闭Option Strict时,VB.NET支持隐式后期绑定。将对象分配给声明为Object类型的变量时,该对象将被后期绑定。VB编译器在执行时插入代码以绑定到正确的方法并捕获无效的调用。C#不支持此功能。 我朝着正确的方向前进吗? 通过接口引用调用委托和调用方法呢?是早期绑定还是后期绑定?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.