[英]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.