Передать параметр с универсальным типом в метод, не зная тип? - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть класс, который наследует базовый класс, который принимает универсальный параметр, такой.

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)

Я ищу самое чистое решение этой проблемы.

1 Ответ

0 голосов
/ 16 февраля 2012

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

public void ChangerService<T>(CsBaseService<T> ctl_Service) where T: IInterfaceOfGenericArgument
...