2012-02-16 4 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) нет никакой связи, они различаются по типам и имеют только общий объект. –

ответ

0

Если параметр универсального типа, который вы передаете в CsBaseService может сдерживать себя интерфейс, вы можете переписать метод быть универсальным, так как:

public void ChangerService<T>(CsBaseService<T> ctl_Service) where T: IInterfaceOfGenericArgument 
Смежные вопросы