加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 不带参数调用委托?

发布时间:2020-12-16 01:34:48 所属栏目:百科 来源:网络整理
导读:我想知道Invoke(委托)方法.我不明白为什么我不需要指定参数.如果我需要他们供应怎么办.在下面你更好地理解我的意思.谢谢 EventHandler a = new EventHandler(this.A); Invoke(a); //where doest it take the arguments from? a(); //does not work,missing a
我想知道Invoke(委托)方法.我不明白为什么我不需要指定参数.如果我需要他们供应怎么办.在下面你更好地理解我的意思.谢谢

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

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

解决方法

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

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的重载,它允许您指定代理的参数,以使其更明确地发生了什么.此外,调用不带参数数组的Invoke只适用于EventHandler类型的委托(当然,也可以是首先不接受任何参数的委托).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读