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