我想知道Invoke(委托)方法.我不明白为什么我不需要指定参数.如果我需要他们供应怎么办.在下面你更好地理解我的意思.谢谢
EventHandler a = new EventHandler(this.A);
Invoke(a); //where doest it take the arguments from?
a(); //does not work, missing arguments
Run Code Online (Sandbox Code Playgroud)
因为Invoke旨在用于Windows窗体,并且这里使用的事件模式已经明确指定,所以Invoke方法可以做出有根据的猜测.实际上,如果您尝试使用Invoke调用不带参数的EventHandler ,它会在MSDN上完全记录它的作用:
委托可以是EventHandler的一个实例,在这种情况下,sender参数将包含此控件,而event参数将包含EventArgs.Empty.
您可以而且应该使用Invoke的重载,它允许您指定代理的参数,以使其更明确地发生了什么.此外,调用不带参数数组的Invoke只适用于EventHandler类型的委托(当然,也可以是首先不接受任何参数的委托).
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |