在编写程序时,我最近遇到了一个奇怪的问题。8个值的两个字节数组,每个值都相同,使用==
运算符时报告为不相等,并且值GetHashCode()
也不同。
byte[] id = new byte[8] {
0x00, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x00, 0x00
};
byte[] od = new byte[8] {
0x00, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x00, 0x00
};
Console.WriteLine(id == od);
Console.WriteLine(id.GetHashCode());
Console.WriteLine(od.GetHashCode());
Console.ReadLine();
该程序到控制台的输出如下:
False
45653674
41149443
谁能提供一些关于为什么这些字节数组不被视为相等的输入?