为了账号安全,请及时绑定邮箱和手机立即绑定

字符串 NULL 总是等于 C# 中的另一个字符串 NULL 吗?

字符串 NULL 总是等于 C# 中的另一个字符串 NULL 吗?

C#
慕工程0101907 2021-11-07 20:11:53
在我的 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个赞

是的,这里有记录

如果 a 和 b 都为 null,则该方法返回 true。

当您使用此方法使用==,这是提到在这里

调用静态Equals(String, String)方法


查看完整回答
反对 回复 2021-11-07
?
月关宝盒

TA贡献1772条经验 获得超5个赞

如果两个字符串都为 null,则该方法始终返回 true,因为==用于引用比较。简单来说,== 检查两个对象是否指向相同的内存位置。

我用 java 尝试了这个例子,str1.Equals(str2)它返回Null Pointer Exception,因为 .Equals 评估对象中值的比较。

希望对你有帮助。


查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信