2012-02-16 100 views
0

我有一个类继承了一个基类,它采用了一个通用参数。将通用类型的参数传递给方法而不知道类型?

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(Of anyTypePossible)

我正在寻找这个问题的最干净的解决方案。

+0

的CWsSimulerPrelvBancaire类必须是通用的为好。 CsBaseService(Of Foo)和CsBaseService(Of Bar)之间没有任何关系,它们是不同的类型,只有Object有共同之处。 – 2012-02-16 14:28:37

回答

0

如果您传递到CsBaseService泛型类型参数可以约束自己的界面,你可以重写你的方法是通用的,像这样:

public void ChangerService<T>(CsBaseService<T> ctl_Service) where T: IInterfaceOfGenericArgument 
相关问题