首页 新闻 会员 周边

我上回提到的+= ,真正的想问的是在这里。这是更进一层的体现。

-2
[已解决问题] 解决于 2018-01-02 19:14

嗨,朋友们:

      欢迎回来。

     上回有提到+=, 也就是这么一个意思,A+=B等价转化A=A+B

      那么以下这句就没这么简单了。

      看图

     

serialPort1.DataReceived  +=  new SerialDataReceivedEventHandler(serialPort1_DataReceived);

我的问题如下:

1)针对这句,难道要理解成:serialPort1.DataReceived =serialPort1.DataReceived+ new  SerialDataReceivedEventHandler(serialPort1_DataReceived)?

这说的过去吗?这让我觉得理解不了。

2)DataReceived 是事件对吧?

3)serialPort1_DataReceived?这是什么,加了个下划线—有什么特别的含义吗?很少见加下划线的,是SerialDataReceivedEventHandler的参数吗?

4)SerialDataReceivedEventHandler这句话是什么意思?可以详细解释下吗?

5)整句话到底要怎么理解?不会是委托吧?连个delegata 都没见到,称不上委托吧?

6) serialPort 这个组件,关于DataReceivd,有很多格式,比如,serialPort.DataReceived

serialPortDataReceived   和  serialPort_DataReceived   这3种写法,唉,都是什么意思呢?

绿绿山水的主页 绿绿山水 | 菜鸟二级 | 园豆:248
提问于:2018-01-02 09:38
< >
分享
最佳答案
1

运算符重载学了没?

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2018-01-02 10:02

学了

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 10:52

你一项项的给我解释下吧

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 10:52

@绿绿山水: 

1.既然学了运算符重载为什么还会有这个问题?

2.看不懂.你按F12看他定义不就知道是不是了?

3.他爱怎么起名字都可以.不要问这种为什么中国叫中国不叫美国的问题

4.哪句话?从哪方面解释?

5.往一个事件里添加一个事件处理,你的判断方法都是有问题.所以判断结果自然就是错的.然后你以错误的判断结果为条件去解释你看到的东西.自然也全是错的.

6.和3一样.有兴趣搞清楚这些你按f12找他的定义.

坏话就不说了.你自己体会吧.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-01-02 11:05

@吴瑞祥: 这位同学骄傲地告诉我——他是从大学读到小学,具备极强逆向的同学~

花飘水流兮 | 园豆:13560 (专家六级) | 2018-01-02 11:12

@吴瑞祥: 你让我买的这本书里一是没有serialPOrt,二是没有运算符重载,三是没有这句话的意思,你还好意思这么说,说了一大堆话,没有一句有用的。

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 11:23

@绿绿山水: 1.书是语法书.你这个serialPOrt是啥我都不知道

2.书里是有运算符重载的

3.意思是要有一本书能给你解释所有你以为的问题?

书的作者不照着你的思路走.就是这本书不行?

我确实没有一句话是有用的.因为只要你继续这样想.那除了找个人在边上 一个键一个键的帮你敲键盘.没有其他法子对你来说是对的.

我劝过很多次:学而不思则罔,死而不学则殆.你的问题是不学.然后拼命的用自己那少的可怜的知识去想.能想出什么? 就说第一个:你既然学了运算符重载了.为什么还会问第一个问题?如果你的思路没问题会这样吗?

吴瑞祥 | 园豆:29449 (高人七级) | 2018-01-02 11:33

@吴瑞祥: 扯这么多没有用,你就解释下第一句话是什么意思得了。其他的你不用管了。

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 11:39

@花飘水流兮: 回答问题

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 14:07

事件的绑定底层是运算符重载实现的吗?

~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2018-01-02 17:37

@吴瑞祥: 谢谢你。但是我还是希望能解决问题,少一点批评,多一点对问题的解释,我学这个很艰辛,以后熟悉了,就不会问这么简单的问题了。

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 19:16

@吴瑞祥: 最后给你的回答一个点赞。

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-02 19:17
其他回答(2)
0

第一句话 是绑定事件

~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2018-01-02 17:33
1

整句话的解释是:

serialPort1.DataReceived是一个事件

serialPort1_DataReceived是上面事件的处理函数

SerialDataReceivedEventHandler是事件处理的delegate

+=代表把事件绑定到处理函数上,也有称订阅之类的

事件=消息+绑定方法,大体就是这样,供你参考

冰冻千尺 | 园豆:323 (菜鸟二级) | 2018-01-03 14:36

我已经为你点赞了,谢谢你的回答,支持你!

支持(0) 反对(0) 绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-03 16:39

@绿绿山水: 不客气,你看书很仔细,加油!

支持(1) 反对(0) 冰冻千尺 | 园豆:323 (菜鸟二级) | 2018-01-04 08:54

@冰冻千尺: 还有一个new? +=代表的是绑定,订阅,那为什么还会有个new?new在这里是干嘛用的 ?

 1 serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); 

支持(0) 反对(0) 绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-05 14:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册