我正在尝试在 C# 中序列化一个对象。我得到了对象大小并将其保存在上面屏幕截图中第 207 行的变量 size1 中。Size1 的值为 160。然后我在第 210 行使用 size1 分配了一个称为 buf 的字节数组。Buf 是一个 2 字节数组!怎么会这样?!
问问题
847 次
3 回答
8
问题就在这里
byte[] buf = new byte[size1];
byte[] buf2 = new byte[16];
buf = b.ReadBytes(...); //<----
您将替换buf
为ReadBytes
. 这会丢弃您的原始数组并将其替换为从返回的数组ReadBytes
(在您的情况下是一个两字节数组)
于 2013-08-14T18:25:59.890 回答
4
ReadBytes() 返回一个byte[]
. 当你写
buf = b.ReadBytes(Marshal.SizeOf(firstRecord));
然后buf
指向一个完全不同的地方byte[]
,它等于b.ReadBytes()
返回的任何东西。
于 2013-08-14T18:27:32.087 回答
0
看起来您正在尝试将某些对象转换为字节数组,这个答案可能会有所帮助。 将任何对象转换为字节[]
于 2013-08-14T18:33:23.080 回答