C# 编程问题 byte 数组,需要释放吗?
C#编程问题byte数组,需要释放吗?bytestreamBuff=newbyte[nStreamSize];然后我又可能new多次,这样需要释放内存吗?大家的回答都特别...
C# 编程问题 byte 数组,需要释放吗?
byte streamBuff = new byte[nStreamSize];
然后我又可能 new 多次,这样需要释放内存吗?
大家的回答都特别好。受益非浅。
不过我想请问的是,我想手工清除,怎么清除呢?
因为它并没有 Dispose 方法。 展开
byte streamBuff = new byte[nStreamSize];
然后我又可能 new 多次,这样需要释放内存吗?
大家的回答都特别好。受益非浅。
不过我想请问的是,我想手工清除,怎么清除呢?
因为它并没有 Dispose 方法。 展开
5个回答
展开全部
那个..要看你的这个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
我给你解释一下楼上几位的意思
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是值类型。
值类型分配在栈上的,用完就立即销毁。
没必要自己去管它。
因为byte是值类型。
值类型分配在栈上的,用完就立即销毁。
没必要自己去管它。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不用,当然CLR的垃圾回收机制会帮你释放
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不放心的话就using一下好了!写代码的好习惯,随时用using释放多余内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询