目前,在我的DLR语言实现中有一个问题,即对语言中定义的方法的后续调用使用对该方法的第一次调用所使用的相同的输入参数。
所以..。如果我用我的语言这么做:
PrintType( 34 );
PrintType( 34.1 );..。产出如下:
整数
整数
我期待的是:
整数
小数
我怀疑(但尚不能证实)这一问题的原因如下:
我的调用绑定器( Restrictions.Empty
所以..。我认为我需要使用为每个参数生成的限制的合并.按类型,或者按实例。
有人能证实或否认我的想法吗?对于我所看到的行为,还有其他的可能性我应该去探索吗?
蒂娅..。
发布于 2008-12-19 17:37:58
你的想法是正确的。在这种情况下,您需要一个类型限制--一般来说,您希望有尽可能少的限制,这样代码就可以从尽可能多的调用站点共享。
它的工作方式是,在向绑定器询问规则之前,DLR正在搜索缓存的规则。这些限制将阻止缓存规则适用于一组新的输入。
https://stackoverflow.com/questions/381141
复制相似问题