c# - C#中的继承问题

标签 c# multiple-inheritance

我遇到了 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/

相关文章:

C# 如何在启动时设置全局数组的大小?

c# - 在ElasticSearch NEST中使用AggregationContainer

c# - razor - 检查参数是否为 null 并且列表是否有参数

c# - 简单注入(inject)器:跨相同图的服务注入(inject)相同的UnitOfWork实例

c++ - 处理多重继承时如何对齐指针?

c++ - dynamic_cast 返回相同的对象类型失败,具有多重继承和中间变量

c++ - 我需要一个何时使用非虚拟多重继承的简单示例

c# - 单独关闭一个 WPF 窗口

c++ - C++中的虚拟继承

python - 如何让 Mypy 与多个相互依赖的 mixin 一起工作?