为什么函数返回真和假

本文关键字:返回 函数 为什么 | 更新日期: 2023-09-27 18:33:38

此代码将返回 true

private bool SimpleComparison()
{
    return new byte() == new byte();
}

此代码将返回 false

private bool AnotherSimpleComparison()
{
    return new byte[0] == new byte[0];
}

听不懂,为什么?据我了解,在第二种情况下,它是不同的地址?那么第一种情况呢?

为什么函数返回真和假

存在 == 运算符的重载,其中两个操作数都是 byte 类型,并且实现它是为了比较每个字节的值;在本例中,您有两个零字节,并且它们是相等的。

数组的 == 运算符不会重载,因此在第二种情况下使用具有两个object操作数的重载,并且其实现比较对两个对象的引用。 对两个数组的引用是不同的。