Object t = 4;
Object s = 4;
if (t == s) { // false
}
List<Object> q = new List<object>() { t };
Boolean found = q.Contains(s); // found = true!
在上面的代码中,我对t == s
返回并不感到惊讶false
;它正在比较对两个对象的引用,并且引用不一样。
但令我惊讶的是,包含返回真实;显然它不仅仅是比较对象引用..它就像比较 4 和 4 的未装箱值..但是它如何以及为什么知道将对象拆箱以比较它们?我试图在这里理解更大的原则。