プログラムを書いているときに、最近奇妙な問題に遭遇しました。8 つの値の 2 つのバイト配列で、それぞれの値が同じである場合、==
演算子を使用すると等しくないと報告され、値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
これらのバイト配列が等しいと見なされない理由について、誰かが入力を提供できますか?