日期:2014-05-18  浏览次数:21354 次

C#中如何清空字节数组byte[]?会的帮忙看下
如题,我设置的是 全局变量,因为多处用到,但是当第一次给byte[]赋值后,不清空的话,程序分两次取值 第一次和第二次取的一样,所以我想在 第一次取值完后 清空byte[]。请问应该如何手动清空,谢谢

------解决方案--------------------
Array.Clear
------解决方案--------------------
你说清空是什么意思?一般不需要做这个操作,你非要重新初始化,最简单的方法就是重新new一个,
------解决方案--------------------
byte[]是引用类型,要释放它需要通过GC,你看不到,

释放byte[]内存效率会很低,一般不需要这么做,如果你确定要释放它,可以重新new一个byte[],这样原来那个就会在适当时机被回收,

byte[] a=new byte[50];

....

a=new byte[50];//这样先前那个数组就会被GC回收,

------解决方案--------------------
探讨

Array.Clear

------解决方案--------------------
真想强制清空的话,建议用using,例如
using(byte buff = new byte[Size])
{
// 你要用的代码,
}
------解决方案--------------------
探讨
byte[]是引用类型,要释放它需要通过GC,你看不到,

释放byte[]内存效率会很低,一般不需要这么做,如果你确定要释放它,可以重新new一个byte[],这样原来那个就会在适当时机被回收,

byte[] a=new byte[50];

....

a=new byte[50];//这样先前那个数组就会被GC回收,

------解决方案--------------------
(byte)1呗
------解决方案--------------------
要研究内存相关的,只能用非托管的语言如VC++,Delphi。。。
NET是自动的,你要研究也是搞不准 的,微软没有机会让你搞准这些
------解决方案--------------------
Array.Clear(byte, 0 ,byte.Length);

 byte[7]=(byte)1;