2016-02-27 71 views
0

为什么这首代码工作创建一个窗口对象,然后调用它

MessageBox.Show("No Applicants\nFirst Add applicants with dataentryaccount"); 
MainWindow mw = new MainWindow(); 
mw.Show(); 
this.Close(); 

但是这第二个代码并不显示兆瓦窗口

MessageBox.Show("No Applicants\nFirst Add applicants with dataentryaccount"); 
MainWindow mw = new MainWindow(); 
this.Close(); 
mw.Show(); 

虽然当逐行调试时,所有这些行都会被执行。

+0

因为您在显示下一个窗口之前关闭了'main'程序窗口 – Olivarsham

+0

但是,当调试一行一行地执行线路时, 会执行? 你将如何证明 –

+0

它必须退出当前所谓的过程.. – Olivarsham

回答

1

当前执行块的EventHandler or procedure还有一些要执行的代码。
您尚未拨打return停止执行当前程序。

Close()只是另一个不会立即删除表单的函数。所以它继续执行当前的代码。

请检查this答案了解更多详情。

+0

嗯,所以你的意思是说新的窗口会被创建,但是由于它没有更多的引用,它最终将被垃圾收集器 –

相关问题