.net 元对象构造函数中限制参数的用途?
目前,我的DLR语言实现中存在一个问题,即对该语言中定义的方法的后续调用与对该方法的第一次调用使用的输入参数相同 所以。。。如果我用我的语言这样做:.net 元对象构造函数中限制参数的用途?,.net,dynamic-language-runtime,.net,Dynamic Language Runtime,目前,我的DLR语言实现中存在一个问题,即对该语言中定义的方法的后续调用与对该方法的第一次调用使用的输入参数相同 所以。。。如果我用我的语言这样做: PrintType( 34 ); PrintType( 34.1 ); 。。。输出为: 整数 整数 我希望: 整数 十进制 我怀疑(但尚不能确认)该问题是由以下原因造成的: 我的调用绑定器(InvokeAction子类)生成一个适当的调用表达式,然后返回一个带有该表达式和限制的新元对象。Empty 因此,我认为可能发生的情况是,Restricti
PrintType( 34 );
PrintType( 34.1 );
。。。输出为:
整数
整数
我希望:
整数
十进制
我怀疑(但尚不能确认)该问题是由以下原因造成的:
TIA…你的想法是正确的。在这种情况下,您需要一个类型限制-一般来说,您希望有尽可能少的限制,以便可以从尽可能多的调用站点共享代码 其工作方式是,在向绑定器请求规则之前,DLR正在搜索缓存的规则。这些限制将阻止缓存规则应用于新的输入集。非常感谢(再次)Dino。。。明白了。DLR慢慢开始有意义了。:-)