C# 自定义类 dispose 释放类对象

我有个简单的类,是测试的classUser{publicstringuname;publicstringupwd;publicstringr1;publicstringr... 我有个简单的类,是测试的

class User
{
public string uname;
public string upwd;
public string r1;
public string r2;
}
比如这个类,我用循环创建1000个对象,并给属性赋值,此时内存会涨到不少,我想问怎么将这些对象释放掉,让内存恢复呢?
展开
 我来答
百度网友9ba62ef
2013-09-23 · TA获得超过282个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:64.6万
展开全部
  1. C#不用主动调用回收,运行时会帮你干这个事儿。

  2. 运行时回收内存的标准是“没有任何引用”

  3. dispose释放对象的话,一般用于关闭一些带状态的连接、做一些构造对应的结束动作,并且“清除引用”

  4. 如果要主动调用内存回收,请查GC类库。或者直接调用GC.Collect()。它会在你调用的时候执行内存回收。也就是“回收[没有任何引用]的变量所对应的内存”。

追问
什么时候才会被认为是没有任何引用啊,我的目的其实很简单  就是这些对象我用完了,看能不能让内存降下来
追答
没有引用恰好就表示你没有任何办法看到它了
我以前也纠结过这个问题,想说用一个检测一个对象。可是我能检测到它就代表它还有引用呀~

所以这个不需要证明什么噢

要看的话,可以用系统的检测工作,查看应用程序损耗的内存等资源的变化吧
RXC55555
2013-09-23 · TA获得超过135个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:117万
展开全部
CLR可以自动进行垃圾回收。当对象没有被引用,CLR自动会将其视为垃圾,并回收内存。
一般情况,dispose是用来释放对象使用的资源,如:文件、数据库连接等。
追问
什么叫没有被引用? 就上面的例子详细帮我解释下哈
追答

这个不太好说。

我从网上找了些图。

过程相当于:

User a=new User();

a=new User();

可以参考:http://www.cnblogs.com/chenzehe/archive/2009/01/24/1380609.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
申江渔夫
2013-09-24 · TA获得超过895个赞
知道小有建树答主
回答量:1479
采纳率:0%
帮助的人:695万
展开全部
对象不被使用时GC会自动回收的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一郎大神
2013-09-23 · TA获得超过1180个赞
知道小有建树答主
回答量:1033
采纳率:92%
帮助的人:317万
展开全部
用List<User>来添加创建的对象实例
调用remove或者removeat来清除不用的对象
User us;
List<User> Users=new List<User>;
For (int i=1;i<1001;i++)
{
us=new User());
Users.add(us)
}
For(int i=1;i<Users.Count+1;i++)
{
Users.RemoveAt(i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式