哪位高手能帮解释C#中这个判断为什么是False
谁能帮解释C#中这个判断为什么是False
如图,C#中。

------解决方案--------------------
看看这个~~
http://www.cnblogs.com/jiahaipeng/archive/2008/04/11/1146316.html
------解决方案--------------------
因为'==’运算符不是虚函数,判断object==object的时候比较的是引用。decimal作为object需要装箱,因而引用一定不相同。
而object.Equals是虚函数,可以被decimal重载,因而可以正确比较。
比如:
如图,C#中。
------解决方案--------------------
看看这个~~
http://www.cnblogs.com/jiahaipeng/archive/2008/04/11/1146316.html
------解决方案--------------------
因为'==’运算符不是虚函数,判断object==object的时候比较的是引用。decimal作为object需要装箱,因而引用一定不相同。
而object.Equals是虚函数,可以被decimal重载,因而可以正确比较。
比如:
decimal d = 1.03m;
bool e1 = (object)d == (object)d; // false,两次装箱的引用不相等
object d1 = 1.03m;
object d2 = 1.03m;
bool e2 = d1 == d2; // false,引用不相等
bool e3 = d1.Equals(d2); // true,实际调用了decimal.Equals,结果相等。