繁体   English   中英

如何检查Application.Exit()中的CancelEventArgs?

[英]How can I examine the CancelEventArgs from Application.Exit()?

在某些情况下,我在WinForms应用程序中调用Application.Exit()

Application.Exit()具有如下所示的重载:

Application.Exit(CancelEventArgs e)

并且文档说e “返回应用程序内的任何表单是否取消了退出。”

但是,我不清楚如何检查e 该方法返回void,并且e未定义为out变量。 我应该可以检查一下吗?

是的,我确实查看了有关Application.Exit()的其他问题,但是这些问题都没有解决。 他们处理事件,而不是调用方法。

在调用Application.Exit之后,实例化CancelEventArgs变量并测试其Cancel属性:

CancelEventArgs e = new CancelEventArgs();
Application.Exit(e);
if (e.Cancel)
{
    // Cancelled
}

您可以检查e的原因是e是对您在方法调用中传递的CancelEventArgs对象的引用。 引用类型的变量不直接包含其数据。 它包含对其数据的引用。 当您传递引用类型参数 (在这种情况下为对CancelEventArgs对象的引用)时,被调用的方法能够使用该引用来访问CancelEventArgs对象的属性,例如,可以将e.Cancel设置为true

在方法调用完成之后,情况是一样的: e仍然是对您传递的CancelEventArgs对象的引用,现在您可以检查其属性以确定被调用方法是否更改了任何属性。

编辑我从您的评论中看到还不清楚,所以考虑一下:将e传递为ref意味着被调用的方法可以将e更改为引用不同的CancelEventArgs对象。 它是否可以在现有的CancelEventArgs对象中设置属性与它无关。

暂无
暂无

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

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