Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ClassA中的方法是否可能由ClassB中的事件触发?_C#_Oop_Serial Port - Fatal编程技术网

C# ClassA中的方法是否可能由ClassB中的事件触发?

C# ClassA中的方法是否可能由ClassB中的事件触发?,c#,oop,serial-port,C#,Oop,Serial Port,我有一个名为Communicator的类,它有一个到电子设备的接口,电子设备有一个到串行端口包装器类的接口(该类又有一个串行端口对象) 通信器通过串行端口向电子设备发送消息 Communicator在某些情况下需要根据SerialPort的响应修改其行为SerialPort在接收数据时通常会引发SerialDataReceivedEvent,但Communicator无权访问此端口 处理对象与SerialPort之间的通信的最佳方式是什么?我愿意接受任何建议!(我对与SerialPort通信完全

我有一个名为
Communicator
的类,它有一个到
电子设备的接口
电子设备
有一个到
串行端口包装器
类的接口(该类又有一个
串行端口
对象)

通信器
通过
串行端口
电子设备
发送消息

Communicator
在某些情况下需要根据
SerialPort
的响应修改其行为
SerialPort
在接收数据时通常会引发
SerialDataReceivedEvent
,但
Communicator
无权访问此端口


处理对象与
SerialPort
之间的通信的最佳方式是什么?我愿意接受任何建议!(我对与
SerialPort
通信完全陌生,因此如果您能正确引导我,我非常感谢!)

您的
SerialPortWrapper
可以在
SerialPort
引发事件时公开并引发事件。您的
电子设备可以处理该事件,并引发自己的事件。这将创建一系列事件,返回到
通信器
。在过程中的每个阶段,您可能会选择适当地重新塑造事件-例如,
ElectronicDevice
可能会引发
MessageReceived
事件,而不是
SerialDataReceivedEvent

+1用于通过SerialPortWrapper链接rx数据,以便在不涉及通信器的情况下正确处理SerialPort。