c# - 方法完成后在方法中创建的控件会发生什么情况?

标签 c# winforms

例如在这段代码中:

void ButtonCreator()
{
    Button elboton = new Button();
}

调用此方法后 elboton 会发生什么情况?

最佳答案

如果它们没有被其他对象(例如容器)引用,那么它们将变得不可访问并且有资格被垃圾收集器收集。这与创建任何其他对象相同。

请注意 System.Windows.Forms.Control 类(及其子类如 Button)都实现了 IDisposable 接口(interface),因此确保释放与 Button 关联的任何 unmanaged 资源的最简单方法是使用 using block ,如下所示:

using(Button elboton = new Button()) {
    // Do whatever you need to do
}
// elboton is now disposed

但是,无论您是否使用 using block ,在 GC 运行之前,与该对象关联的任何托管资源都不会被回收。

关于c# - 方法完成后在方法中创建的控件会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151122/

相关文章:

c# - 如何在 C# Windows 窗体上生成验证码?

c# - 用于图表应用程序的 html5/JavaScript 或 WPF/C#

c# - RSACryptoServiceProvider 使用自己的公钥和私钥初始化

c# - 找不到类型或命名空间名称 'ImageEntitiesContainer'

c# - C# 对 native 互操作的限制

c# - 自定义 TreeView

c# - 如何创建具有两种不同数据类型值的键值对?

c# - 使用正则表达式拆分字符串

c# - 如何设置属性网格的列宽?

c# - 在 C++ 中使用 Winform 作为 View