c# - WPF窗口类销毁

标签 c# wpf window destructor

我创建了一个这样的窗口:

if (someCondition)   
{  
   MyWindow wnd = new MyWindow();  
   wnd.Owner = this;  
   wnd.ShowDialog();  
}  

我希望在右花括号处调用 MyWindow 的析构函数,但它没有。我是否需要调用删除/销毁之类的东西才能调用 MyWindow 的析构函数?

最佳答案

“析构函数”或 finalizer正如在 C# 中调用的那样,只要垃圾收集器感觉合适,就会调用它。您可以使用 System.GC.Collect() 手动触发垃圾收集器, 但是 you probably don't want to do this .另一方面,如果您谈论的是 Dispose(),则可以通过在“using”子句中创建窗口来调用它:

using (var wnd = new MyWindow())
{
    wnd.Owner = this;  
    wnd.ShowDialog(); 
}

这将使 wnd.Dispose() 在 using 子句完成时被调用,并且基本上与编写相同:

var wnd = new MyWindow(); 
wnd.Owner = this;  
wnd.ShowDialog();     
wnd.Dispose(); 

关于 IDisposable 的使用界面 this question可能会有帮助 - 和 several more on StackOverflow .

关于c# - WPF窗口类销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283557/

相关文章:

javascript - Html 节点内的信息不可见

c# - 如何从继承的 FromBody 模型中获取正确的类型?

android - Android 中的 *Window focus* 什么时候改变?

c# - 在 C# 的嵌套函数中分配的捕获变量在哪里

c# - 代码契约运行时检查异常

wpf - C# Wpf 编辑 Datagrid 不会更新它的 itemssource

c# - 如何将大数据表复制到 MySql 表?

wpf - 用于单按钮事件的 ICommand

扩展 : Need a confirmation message before closing the window

android - Activity 的昏暗背景