我有在C#問題在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.Form
由於C#不允許多重繼承,據我所知表有沒有接口類,我必須使MasterCamera
繼承自Windows.System.Forms.Form
我不想那麼做,所以我該如何解決這個問題?
謝謝,這工作。不知道你可以使用一個接口作爲一個對象來調用函數。 – SinisterMJ
這不提供實現通用功能的方法。 – GazTheDestroyer
確實如此,但由於每個相機的製造商API完全不同,因此幾乎沒有共同的代碼。 – SinisterMJ