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

C#编程问题byte数组,需要释放吗?bytestreamBuff=newbyte[nStreamSize];然后我又可能new多次,这样需要释放内存吗?大家的回答都特别... C# 编程问题 byte 数组,需要释放吗?
byte streamBuff = new byte[nStreamSize];
然后我又可能 new 多次,这样需要释放内存吗?
大家的回答都特别好。受益非浅。
不过我想请问的是,我想手工清除,怎么清除呢?
因为它并没有 Dispose 方法。
展开
 我来答
Ben
推荐于2018-05-07 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
那个..要看你的这个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
老级幸1286
2009-12-02 · TA获得超过511个赞
知道小有建树答主
回答量:756
采纳率:0%
帮助的人:383万
展开全部
不用,
因为byte是值类型。
值类型分配在栈上的,用完就立即销毁。
没必要自己去管它。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guozhipeng111
2009-11-24 · 超过12用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
你不用,当然CLR的垃圾回收机制会帮你释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjn660877
2009-11-25 · TA获得超过2189个赞
知道小有建树答主
回答量:1669
采纳率:0%
帮助的人:1383万
展开全部
不放心的话就using一下好了!写代码的好习惯,随时用using释放多余内存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
重典技术闲话
2009-11-24 · TA获得超过2173个赞
知道大有可为答主
回答量:2593
采纳率:0%
帮助的人:1135万
展开全部
不用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式