繁体   English   中英

放置物体后会发生什么?

[英]what happens after I dispose an object?

我的Form上有Label 当我调用Dispose()方法时,object从Form删除。 但是我仍然可以设置它的属性。 我为对象调用Dispose()方法后会发生什么。 我可以恢复它并再次显示吗?

public void MyMethod()
{
     label1.Dispose();
     label1.Text = "Test";
     //No error happens
}

处置后,我可以读取一些属性,例如Left属性。 这意味着标签仍然存在于某个地方。 我如何才能将其完全删除?

在这种情况下,发生的情况是控件的句柄被破坏(并因此从其父项中移除)。 处置后,将无法再将其添加到可见的显示器中。 但是,与类实例一样,对象本身仍然存在,因此可以设置大多数属性。 (有些会给出对象处理的异常,例如尝试获取Handle属性)

通常,仍然可以设置哪些属性,取决于对象的实现(IDispose接口的实现)以及它在哪里放置的检查。

obj.Dispose()命令GC销毁该对象。 如果您尝试在obj.Dispose()之后更改其数据, obj.Dispose()不会发生任何事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM