none
赋值运算符+= ,真正的问题是在这里。这是更进一层的体现。但是难以理解。想了很久想不通。 RRS feed

  • 问题

  • 嗨,朋友们:

           元旦快乐

           欢迎回来。

         关于赋值运算符+=, 也就是这么一个意思,A+=B等价转化A=A+B

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

    我的问题如下:

    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种写法,唉,都是什么意思呢?

         


          看图

         
    serialPort1.DataReceived  +=  new SerialDataReceivedEventHandler(serialPort1_DataReceived);

    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); string s = ""; int count = serialPort1.BytesToRead; byte[] data = new byte[count]; serialPort1.Read(data, 0, count);



    我的问题如下:

    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种写法,唉,都是什么意思呢?



    2018年1月2日 1:57

答案

  • Hi,

    欢迎在MSDN论坛发帖。

    >>1)针对这句,难道要理解成:serialPort1.DataReceived =serialPort1.DataReceived+ new  SerialDataReceivedEventHandler(serialPort1_DataReceived)?这说的过去吗?这让我觉得理解不了。

    不能这么理解。我个人觉得这就是给事件增加一个事件处理函数,+= 对于C#事件里面是追加的意思,并不是把A= A+B 的意思。

    >>2)DataReceived 是事件对吧?

    从代码逻辑来看是事件。
    >>3)serialPort1_DataReceived?这是什么,加了个下划线—有什么特别的含义吗?很少见加下划线的,是SerialDataReceivedEventHandler的参数吗?

    这是写法的一种规范,一般大公司都会有要求,函数命名以及变量名都要按照公司要求来写。

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

    这个代码,你按F12进去看了吗? 是不是事件类型? 这地方就是new 了一个事件。


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

    如果你尝试看里面的源码,你会发现delegate.


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

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

    如果定义了这么多类型,那你就要进去看,每种类型都是什么意思,从字面意思,就看不出来了。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月2日 8:10
    版主