2012-02-16 80 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 
相關問題