我正在玩 DLR 以更好地理解它。我还不完全熟悉它的所有概念和术语,因此对我的问题中的任何术语或概念错误感到抱歉。
基本上,我理解的方式是在表达式树中传递对象,但使用绑定器将对象的动态功能公开给其他支持 DLR 的语言。因此,不是直接在表达式树中进行添加(例如,使用 Expression.Add),而是创建一个绑定器,调用站点在需要时调用该绑定器并为您执行添加。
但是,由于您传递对象,因此在加法操作结束时(例如,如果操作数是两个 Int32 值),您将不得不将生成的 Int32 装箱到一个对象,因为(仍在活页夹中)调用什么网站预计。我有点担心这种不断的装箱/拆箱可能会在一定程度上影响运行时的性能。
这真的是它应该如何工作(所有装箱/拆箱)还是我错过了什么?