C# 这样要如何释放资源?还是直接=null?

classA{privatList<String>_list//有很多个这样的Llist还有Directory~但是类型都是String啊,Int等等~自带类型~还有自定... class A
{
privat List<String> _list
//有很多个这样的Llist还有Directory~但是类型都是String啊,Int等等~自带类型~
还有自定义的类
privat Myclass _class;
public A()
{
_list=new XXX
_class=new XXX
//构造函数初始化这些变量~
}
}

public class Myclass
{
//里面也是一些private的String,int之类的~还有些List<String>
//并且在构造函数里面new了~
}

假设我在另一个类里面~
public class KUKU
{
private A a;
public build()
{
a=new A();

}
public dispose()//这个如何释放a?直接a=null就行了吗?
{
a=null;//这个如何释放a?直接a=null就行了吗?
}
}
展开
 我来答
lzh3452
2014-06-16 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:864万
展开全部
对于new出来的东西,自己有dispose方法,不需要你自己实现。
另外,C#有垃圾回收处理,一般不需要自己释放,局部变量方法结束自然就释放了。全局的或者多form时,才需要按需要自己释放。
追问
像上面那样的话~我直接就不用写=null了吗?
如果玩家一直调用build()方法~会不会内存溢出?
追答
这要看你的处理机制了,如果你的处理比较慢,比如五分钟才结束,而一次要10M的内存,那么有人在五分钟内调用了1000次,你系统肯定溢出。可如果你一次只要几KB,那就不会出问题了。重点还是你这个东西是不是局部的,或者单独在一个线程里。这两种情况,用完了会马上被释放。否则系统可能会无法判断是否要释放,这种就得你自己释放。
如果你代码写的合适,再出现内存溢出的问题,那就是压力测试的时候需要考虑的了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式