C# 编程问题 byte 数组,需要释放吗?

来源:百度知道 编辑:UC知道 时间:2024/05/28 20:04:12
C# 编程问题 byte 数组,需要释放吗?
byte streamBuff = new byte[nStreamSize];
然后我又可能 new 多次,这样需要释放内存吗?
大家的回答都特别好。受益非浅。
不过我想请问的是,我想手工清除,怎么清除呢?
因为它并没有 Dispose 方法。

那个..要看你的这个streamBuff 的作用域了...
我给你解释一下楼上几位的意思
CLR机制是在该对象使用完毕后,并且机器判断不会再有使用到的情况下...会有这个CLR机制,自动回收资源.也就是释放..
第一位说的不用,意思是你不用管他..
第2位已经解释..
第3位他的意思也就代表着我说的作用域..
但是..有但是哦!. 如果你把这个定义成为一个全局变量,也就是任何一个类想要用的时候就能用到的变量的话,你需要释放一下
其实.NET有很好的CLR强制机制的..
我想你肯定见识过一个东西
using()
{

}
如果你使用他的时候这样写
using(byte streamBuff = new byte[nStreamSize])
{
// 你要用的代码,
}
在这个USING结束的时候CLR机制会强制启动的..也就自动释放了..
同样的..如果你要用到全局.那么尽量可能的在是用完后手动清空.
因为..这样做能使效率提高...
即使是CLR机制也不是马上就能处理掉..他是要判断是否有使用..有延迟..
如果你用的比较多..或者这个byte streamBuff = new byte[nStreamSize];
内容比较大..
那么推荐你手动把他清空,或者就是你说的释放一下..
不然内存真的会占的好多...
在大的ERP与各种类型项目中..手动清空是必须的...
现在就练就一个良好的编程习惯吧....

还有什么不动+QQ:58603432

不用,
因为byte是值类型。
值类型分配在栈上的,用完就立即销毁。
没必要自己去管它。

不放心的话就using一下好了!写代码的好习惯,随时用using释放多余内存

你不用,当然CLR的垃圾回收机制会帮你释放

不用