我遇到了 C# 中不允许的多重继承的问题
以下场景:
class MasterCamera { ... }
class CameraFromManufacturerA : MasterCamera { ... }
class CameraFromManufacturerB : MasterCamera { ... }
class CameraFromManufacturerC : MasterCamera { ... }
MasterCamera
提供了一些功能,如 StartCamera()
、ConnectCamera()
等。
在我的主要代码中,我使用了一个对象 MasterCamera mCamera = CameraSelector.GetCamera();
使用 CameraSelector
检查是否连接了来自 A、B 或 C 的相机,并返回该对象(例如 CameraFromManufacturerA
)
这在理论上工作得很好,但其中一个相机的 API 需要使用 WindowsMessageCallback (WndProc
),因此我只需要为该相机包含 Windows.System.Forms。表单
由于C#不允许多重继承,而afaik Form没有接口(interface)类,我不得不让MasterCamera
继承自Windows.System.Forms.Form
我不想这样,那我该如何解决呢?
最佳答案
您不应该将 MasterCamera { ... } 用作类,而应将其用作接口(interface) 喜欢:
公共(public)接口(interface) MasterCamera { ... }
而且它必须有效。
关于c# - C#中的继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384679/