首页 > 解决方案 > String NULL 是否总是等于 C# 中的另一个 String NULL?

问题描述

在我的 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字符串始终相同是否安全?

标签: c#string

解决方案


是的,这里记录了

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

而且这个方法是在你使用的时候用到==的,这里说一下。

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


推荐阅读