请帮助理解这个行为。当我使用以下代码时:
bool a1 = (object)("string" + 1) == ("string" + 1);
结果为false
但是当我使用这个时
bool a2 = (object)("string" + "1") == ("string" + "1");
结果为true
那么,为什么是a1 != a2
呢?
==
来比较是可以的,这只是在处理作为对象强制转换的字符串时有点奇怪。但是,"string" + 1 == "string1"
仍然返回true。而在Java中,你确实需要使用equals
。我避免在.NET中使用Equals
的最大原因是每次都要检查第一个字符串是否为空,以避免NullReferenceException,而使用==
可以很好地比较空值。 - Joe Enos