gpt4 book ai didi

c# - C#中的继承问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:49 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com