我有一个继承基类的类,它带有一个泛型参数。
Partial Public Class CWsSimulerPrelvBancaire
Inherits CsBaseService(Of CxSimulerPrelvBancaire)
我的问题是我需要将基类传递给方法,因为我希望从该基类继承的每个类都通过该方法。
Public Sub ChangerService(ByVal ctl_Service As CsBaseService(Of ???)
_ctlServiceActif = ctl_Service
_ctlConteneurService.ActiveViewIndex = ctl_Service.Service
End Sub
问题在于我添加了“???”在上面这段代码中..如何在那里设置通用?因为我们不需要知道这里指定了哪个类型,我们只需要知道它的CsBaseService(任何类型的可能)
我正在寻找解决这个问题的最干净的解决方案。
答案 0 :(得分:0)
如果传递给CsBaseService的泛型类型参数可以将自身约束到接口,则可以将方法重写为通用的,如下所示:
public void ChangerService<T>(CsBaseService<T> ctl_Service) where T: IInterfaceOfGenericArgument