在我的 VS 2015 编译器上,我测试了 static void Main(string[] args) { string str1 = null; string str2 = null; if(str1==str2) //they are the same on my machine { } }但这是记录在案的行为吗?NULL根据定义,是一种未定义的行为,因此与NULL另一个比较NULL 可能是未定义的。可能会发生在我的机器上,使用我当前的 .Net 框架,这两个NULL结果是相同的。但在未来,他们可能不再一样了。在这种情况下,我的代码将无声地中断。始终假设上述两个NULL字符串始终相同是否安全?
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
月关宝盒
TA贡献1772条经验 获得超5个赞
如果两个字符串都为 null,则该方法始终返回 true,因为==用于引用比较。简单来说,== 检查两个对象是否指向相同的内存位置。
我用 java 尝试了这个例子,str1.Equals(str2)
它返回Null Pointer Exception,因为 .Equals 评估对象中值的比较。
希望对你有帮助。
- 2 回答
- 0 关注
- 260 浏览
添加回答
举报
0/150
提交
取消