通过指针删除对象

时间:2012-03-13 20:40:29

标签: c# pointers

我有一个指向标签的标签数组,例如

label_array[i] = a_label;

数组具有全局而标签具有功能范围。是否可以通过数组删除标签?

1 个答案:

答案 0 :(得分:1)

通常,您可以通过设置对null的引用来处置对象,垃圾收集器将负责处理这些对象。 然而,并非所有对象都可以通过设置对null的引用来处理。实际上,实现IDisposable的所有对象都应该通过调用它们的Dispose方法来处理,因为GDI对象需要显式调用Dispose来释放它们的资源(请参阅此内容) details)的链接

这就是说,如果a_label是WinForms Label,那么你应该执行以下操作来处理它:

// REMOVE THE LABEL FROM THE PARENT CONTAINER FIRST 
// AND THEN DO THE FOLLOWING
label_array[i].Dispose();
label_array[i] = null;

修改 只是为了突出@Groo在下面的评论中提到的内容,请确保在处理之前从父容器中删除Label,谢谢@Groo!