c#中byte数组怎么添加空白的数据

昨天忆 2018-06-04 10:28:52
byte[] buffera = new byte [ ] { 1,2,3,4,5};
byte[] buffer = new byte[16];这个定义了固定长度,但是给buffer赋值后长度就会变了
buffer = buffera ;赋值
怎么能让buffer的长度不变,并且赋的值就是buffera,可以添加空白数据吗
...全文
993 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gradually-宁 2019-05-12
  • 打赏
  • 举报
回复
有趣,受教了
昨天忆 2018-06-05
  • 打赏
  • 举报
回复
谢谢,结贴了,自定义了长度之后数据也不能为空,会默认为0,还是需要处理
liulilittle 2018-06-04
  • 打赏
  • 举报
回复
引用 楼主 xbingyou 的回复:
byte[] buffera = new byte [ ] { 1,2,3,4,5}; byte[] buffer = new byte[16];这个定义了固定长度,但是给buffer赋值后长度就会变了 buffer = buffera ;赋值 怎么能让buffer的长度不变,并且赋的值就是buffera,可以添加空白数据吗
你这么做肯定不行的三,你将buffera的引用赋值到buffer中,buffer与buffera之间的地址就是相同的。 如果你向把buffera的数据放到buffer中,你仅仅只需要把buffera的数据copy到buffer就可以了。 .net中拷贝数组的方法有很多种,但是我建议不要使用“Array.Copy”或者自己用for一个个拷,写不好 的话效率会比较低的哦。 你可以使用“Buffer.BlockCopy”或“Marshal.Copy”来拷贝内存,它是通过托管wrap指针(IntPtr) 的方式来拷贝对齐结构类型数组的。
xuzuning 2018-06-04
  • 打赏
  • 举报
回复
没赋值的自然是0
xuzuning 2018-06-04
  • 打赏
  • 举报
回复
Array.Copy Buffer.BlockCopy
昨天忆 2018-06-04
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
Array.Copy 方法
https://msdn.microsoft.com/zh-cn/library/system.array.copy.aspx

这个方法长度是没变,但是获取其他数据都为0
cheng2005 2018-06-04
  • 打赏
  • 举报
回复

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧