请大家看看,两图。我调用一个方法,对传入来的参数进行相减,为什么会对传入来的参数受影响?decimal是struct,值类型。况且我没有进行赋值(运算符重载不存在吧),为何会自动发生变化。
刚才用reflector看了下,确实把参数给改变了:
我居然这么多年都没发现
感谢你的回复,但好像又不是那一回事。我多了两行代码,又正常了。这个是微软的bug么?
@顺德k哥: 真是啊,我也试了。我现在没空了,你有空的话可以这样试试:把你前后的代码都翻译成IL,看看有什么区别,我看源码是改了参数的,可能你写的前后代码IL有差别,用反编译工具就能看到
var替换为decimal试试,估计var语法糖内部封装了ref