我是一位有用的助手,可以翻译文本。
如果我没记错的话,== 会比较这两个结果之间的地址,因为第一个半部分是由函数返回的,所以这将失败,因为结果与右侧的常量不会是相同的地址。
我是否还抱着旧的Java习惯?或者我的同事不在身边是一件好事?
附言:无论您对比较字符串的答案如何,我确实意识到上面的语句最好表述为 s.BeginsWith("GBCI"),但那是另外一回事。
可能的重复:
使用 == 或 Equals 进行字符串比较
string.Equals() 和 == 操作符真的相同吗?
我先学了Java,其中很少有绝对的规则,但你永远不会使用“==”来比较两个字符串是否相等,而是使用equals方法。所以当多年前我接触C#并发现对象仍然具有Equals方法时,我认为这个规则仍然适用。
现在我正在查看前同事的代码,并且到处都能找到类似于以下代码片段:
if (s.Substring(0, s.IndexOf("_")) == "GBCI") {...}
如果我没记错的话,== 会比较这两个结果之间的地址,因为第一个半部分是由函数返回的,所以这将失败,因为结果与右侧的常量不会是相同的地址。
我是否还抱着旧的Java习惯?或者我的同事不在身边是一件好事?
附言:无论您对比较字符串的答案如何,我确实意识到上面的语句最好表述为 s.BeginsWith("GBCI"),但那是另外一回事。
if (s.BeginsWith("GBCI_"))
- BoltClock