我想我不明白为什么第一个语句的计算结果为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/

10-11 03:14