2012-02-16 16 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しか持っていません。 –

答えて

0

あなたはCsBaseServiceに渡すジェネリック型パラメータは、インターフェイスに自分自身を制限することができた場合、あなたはそのような一般的であるためにあなたの方法を書き換えることができが:

public void ChangerService<T>(CsBaseService<T> ctl_Service) where T: IInterfaceOfGenericArgument 
関連する問題