C#中的自定义对象怎么释放?

lileammm 2007-01-04 09:48:42
public class Foo
{
public string name;
}

Foo foo = new Foo();
foo.name="tata";

//使用

//使用完了后想立即释放foo在堆中的内存,怎么释放?
...全文
784 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lileammm 2007-01-04
  • 打赏
  • 举报
回复
谢谢大家!

foo = null;
GC.Collect();


这个答案好像可以。
viena 2007-01-04
  • 打赏
  • 举报
回复
//先
foo = null;
viena 2007-01-04
  • 打赏
  • 举报
回复
.Dispose方法用于释放非托管资源,与释放内存无关~
lileammm 2007-01-04
  • 打赏
  • 举报
回复
GC.Collect();//强制对所有代进行垃圾回收---foo对象GC怎么识别它是垃圾呢?实际上我调用万了这句话后,foo对象还是生存的。

实现IDisposable接口,我的Foo类很简单,没有什么资源可以释放,只有其foo本身所占用的内存,怎么释放?
alexanda2000 2007-01-04
  • 打赏
  • 举报
回复
实现IDisposable接口,里面有个Dispose方法。在这个方法里释放对象中的资源。用完之后手工调用Dispose就行了。有一些注意事项,MSDN里有很详细的讲解的。
viena 2007-01-04
  • 打赏
  • 举报
回复
GC.Collect();//强制对所有代进行垃圾回收
viena 2007-01-04
  • 打赏
  • 举报
回复
GC.Collect;//强制对所有代进行垃圾回收
viena 2007-01-04
  • 打赏
  • 举报
回复
stackalloc只能用于非托管类型

Char * pc = stackalloc Char[10];
//因为是指针类型,要放在Unsafe块内
lileammm 2007-01-04
  • 打赏
  • 举报
回复
liujia_0421(SnowLover) :
我想由我来决定GC什么时候回收堆的内存,就是想迅速结束那个自定义对象的生命,可以么?
lileammm 2007-01-04
  • 打赏
  • 举报
回复
viena(维也纳nn-下潜15米,潜望镜升起):
stackalloc怎么加呢?如果我一定要动态释放,是不是不支持?
liujia_0421 2007-01-04
  • 打赏
  • 举报
回复
可以不用理,GC会自动回收的..
golderer 2007-01-04
  • 打赏
  • 举报
回复
我想垃圾收集器会自动回收吧
viena 2007-01-04
  • 打赏
  • 举报
回复
而托管对象的内存只能由GC来自动回收
viena 2007-01-04
  • 打赏
  • 举报
回复
需要unsafe上下文
viena 2007-01-04
  • 打赏
  • 举报
回复
用stackalloc关键字
在堆栈上分配内存块,此内存不受垃圾回收的制约,在方法返回后自动释放
shinaterry 2007-01-04
  • 打赏
  • 举报
回复
直接关闭

foo.Close();

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧