谁能帮解释C#中这个判断为什么是False 看看这个~~http://www.cnblogs.com/jiahaipeng/archive/2008/04/11/1146316.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 两边需要强制类型转换成decimal 因为'==’运算符不是虚函数,判断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,结果相等。 datatable分类汇总 线程的问题 加急!SQLServer2005 安装问题 求大家帮忙 问个菜鸟问题:c#一般是做什么开发的,web吗? winform 程序中一般把数据库连接字串放到 app.config 中,还是在Form表单中自己弄个可调整的配置文本框来输入?? 关于系统的分层 请高手们帮我看看原因吧 DataGrid更刷新的问题。 急!多个项目如何相互调用?如何取消其它项目的虚拟目录?把它们融合在一个解决方案里? 关于Process.Start()的问题 有关于异常处理的问题 c# 获取所有打开的网页
而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,结果相等。