首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

问一个引用类型和其垃圾回收的有关问题,请大家指点!多谢

2011-12-14 
问一个引用类型和其垃圾回收的问题,请大家指点!谢谢!如下一个范类型列表,其中元素的数据类型为自定义的类M

问一个引用类型和其垃圾回收的问题,请大家指点!谢谢!
如下一个范类型列表,其中元素的数据类型为自定义的类MyClass
List <MyClass>   _dataList   =   new   List <MyClass> ();

而MyClass中又有引用类型的数据,比如假设又是一个范类型列表或其它,等等。
public   class   MyClass
{
List <MyOtherClass>   data   =   new   List <MyOtherClass> ();
}

那么对List <MyClass> 类型的变量_dataList的Add、Remove、Clear等操作,实际上引用类型的数据对象没并有真正删除。
那么这样会不会出现内存中引用对象只增不减,直到程序退出?如果是这样的话,那么不是存在很大的问题哟。不知道C#的垃圾回收问题是如何处理这点的。何时删除引用类型的对象?谢谢!

[解决办法]
List <MyClass> a = new List <MyClass> ();
List <MyOtherClass> b = new List <MyOtherClass> ();//比如这里创建的对象占用内存是X;
a.Add(b);
b=null;//这时X不会被回收,因为a[0]指向X
a.Clear();//这时已经没有引用指向X了,垃圾回收器会在下次执行回收的时候回收掉X

热点排行