gpt4 book ai didi

c# - 不带参数调用委托(delegate)?

转载 作者:行者123 更新时间:2023-11-30 14:19:38 25 4
gpt4 key购买 nike

我想了解 Invoke(delegate) 方法。我不明白为什么我不需要指定参数。如果我需要他们供应怎么办……希望下面你能更好地理解我的意思。谢谢

 EventHandler a = new EventHandler(this.A);
Invoke(a); //where doest it take the arguments from?

a(); //does not work, missing arguments

最佳答案

因为 Invoke 旨在用于 Windows 窗体,并且此处使用的事件模式已明确指定,所以 Invoke 方法可以进行有根据的猜测。事实上,it is documented on MSDN如果您尝试使用 Invoke 调用不带参数的 EventHandler,它的确切作用是:

The delegate can be an instance of EventHandler, in which case the sender parameter will contain this control, and the event parameter will contain EventArgs.Empty.

您可以而且应该使用 Invoke 的重载,它允许您指定委托(delegate)的参数,以便更明确地说明正在发生的事情。此外,在没有参数数组的情况下调用 Invoke 仅适用于 EventHandler 类型的委托(delegate)(或者,当然,首先不采用任何参数的委托(delegate))。

关于c# - 不带参数调用委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com