永发信息网

C#问题--event1+=new myDelegate(某方法)

答案:4  悬赏:80  手机版
解决时间 2021-02-14 21:04
  • 提问者网友:藍了天白赴美
  • 2021-02-13 20:44
C#问题--event1+=new myDelegate(某方法)
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-02-13 20:49
这是委托与事件的知识;
委托与事件:委托是对函数的封装,可以当作给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托对象用关键字delegate来声明,而事件是说在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。

这个操作是将 委托对象加到事件对象中;
当有委托对象执行时,会触发对应的事件发生;

与a+=5相比,虽然形式上类似,但是其意义是不一样的;
这里的“+=”是增加委托实例对象的意思,当然“-=”就是移除委托实例的意思
通俗点说就是 event1 这个事件在什么时候触发呢,只有执行了event1+=new myDelegate这条语句后,才有了执行事件的前提;将委托对象加到事件中;

故最终不能改成event1=event1+new myDelegate(某方法);
全部回答
  • 1楼网友:未来江山和你
  • 2021-02-13 22:47
liaoxw624 正解。
  • 2楼网友:深街酒徒
  • 2021-02-13 21:35
不可以。
因为所有事件只重载了+=和-=这两种操作符,
其他操作符没有重载,也就不能适用.
而你说的a+=5,可以改为a=a+5
这是因为int型既重载了所有+和=运算符,也重载了+=重载了运算符.
所以两种用法都可以用,并且等价.
  • 3楼网友:纵马山川剑自提
  • 2021-02-13 21:16
对这就是操作符重载的问题。
其实,在编程语言里面,+,-,*,/,+=等符号也是函数,只是样子特殊了点。而符号2端的量就是函数的参数。
函数重载的意思就是,函数名相同,参数不同。
+,=并没有事件这种参数,所以不能改成那样。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯