我想我不明白为什么第一个语句的计算结果为true
而最后一个语句的计算结果为false
,但这已经是漫长的一天了。
有人可以解释吗?
0L.Equals(0) // true
((object)0L).Equals(0L) // true
((object)0L).Equals(0) // false
最佳答案
Object.Equals
首先比较类型,如果对象是它的值类型。两者在这种情况下是不同的。
MSDN:
关于c# - 为何将0L强制转换为对象时不等于0?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27850042/