【发布时间】:2015-09-24 09:46:14
【问题描述】:
请考虑以下代码行:
port->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceivedHandler);
前面的+ 与gcnew 关键字一起使用有什么区别?
【问题讨论】:
-
在这段代码中,修改了委托DataReceived的调用列表。
标签: c++-cli
请考虑以下代码行:
port->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceivedHandler);
前面的+ 与gcnew 关键字一起使用有什么区别?
【问题讨论】:
标签: c++-cli
+= 运算符不适用于 gcnew 运算符,但适用于 DataReceived 事件。您正在使用 'gcnew' 运算符在托管堆上实例化一个新的 SerialDataReceivedEventHandler 委托,并且您正在使用 += 运算符将其添加到 DataReceived 事件的调用列表中。
【讨论】:
+= 与委托一起使用时,就会发生这种情况。对于事件,将调用与该事件关联的 add 方法,按照惯例,它会添加到调用列表中,但不是必须的。