Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 如何最好地使用所有者类_C# - Fatal编程技术网

C# 如何最好地使用所有者类

C# 如何最好地使用所有者类,c#,C#,在编写程序时,我一直面临着同样的挑战,我尝试使用owner类来控制和管理创建的类中发生的事情,但我觉得我偏离了整个哲学的轨道 例如,我可能想创建一个设备类,它也有一个串行端口类。我希望其他部件应用程序直接使用串行端口类,但为了使串行端口类正常工作,它需要调用设备类中的方法,而不是我希望公开的所有方法 是否有更好的方法来实现这一点创建一个public Init方法来调用设备类中所有必要的私有方法,可以灵活地使用可选参数。此Init方法将使用/初始化串行端口类 然后,您可以以正常方式使用设备类,即使

在编写程序时,我一直面临着同样的挑战,我尝试使用owner类来控制和管理创建的类中发生的事情,但我觉得我偏离了整个哲学的轨道

例如,我可能想创建一个设备类,它也有一个串行端口类。我希望其他部件应用程序直接使用串行端口类,但为了使串行端口类正常工作,它需要调用设备类中的方法,而不是我希望公开的所有方法


是否有更好的方法来实现这一点

创建一个public Init方法来调用设备类中所有必要的私有方法,可以灵活地使用可选参数。此Init方法将使用/初始化串行端口类


然后,您可以以正常方式使用设备类,即使用公共方法获取/发送信息等。这里也可以调用来自串行端口类的方法,但设备类的调用方可能不知道这一点。

首先,串行端口类不应直接回叫所有者,这是错误的实现。使用接口,如DeviceClass实现的SerialPort类的ISerialPort。DeviceClass将SerialPort类创建为private并公开接口。DeviceClass的接口实现截取并执行与SerialPort的通信,向SerialPort实例提供设备专用的所需信息。因此,所有与SerialPort的通信都是由设备间接处理的。

您应该创建一个类来管理串行端口。然后,设备类和其他类可以与该类通信。SerialPort类必须注意发送/接收的内容。谢谢,这与我所采取的方法非常相似,我将在设备的部分类中创建SerialPort的嵌套类。然后,SerialPort类将通过ISerialPort接口公开。我想我只是担心整个嵌套类方法。