首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#字节数组分配不正确

C#字节数组分配不正确
EN

Stack Overflow用户
提问于 2013-08-14 18:09:07
回答 3查看 893关注 0票数 0

我试图在C#中序列化一个对象。我得到了对象的大小,并将其保存在一个变量中,在上面的屏幕截图中,size1在第207行。Size1的值为160。然后,我使用size1在第210行中分配一个名为buf的字节数组。Buf是一个2字节的数组!这怎么可能?!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-14 18:25:59

问题就在这里

代码语言:javascript
复制
byte[] buf = new byte[size1];
byte[] buf2 = new byte[16];
buf = b.ReadBytes(...); //<----

您将用buf的结果替换ReadBytes。它丢弃原始数组,并将其替换为从ReadBytes返回的数组(在您的示例中是两个字节数组)。

票数 8
EN

Stack Overflow用户

发布于 2013-08-14 18:27:32

ReadBytes()返回一个byte[]。当你写

代码语言:javascript
复制
buf = b.ReadBytes(Marshal.SizeOf(firstRecord));

然后,buf指向一个完全不同的byte[],它等于返回的任何b.ReadBytes()

票数 4
EN

Stack Overflow用户

发布于 2013-08-14 18:33:23

看起来,您正在尝试将某个对象转换为一个字节数组,这个答案可能会有所帮助。Convert any object to a byte[]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18239128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档