2012-07-03 13 views
6

Mam interfejs z obiektów typu T jak takiteracja listy interfejsów

public interface IService<T> 

Mam kilka tych interfejsów ze wszystkimi innego typu T. Jak mogę dodać te interfejsy do listy sortowania, iterować listę i wywoływać wspólną metodę używaną przez interfejs. Jakieś pomysły? Czy istnieje alternatywne podejście?

Jeśli dodaję go do listy, po prostu nie widzę sposobu prawidłowego rzucania typu T.

Odpowiedz

13

Jeśli metoda jest wspólne, to prawdopodobnie to nie zależy od T, więc powinieneś być w stanie to zrobić:

interface IService { 
    void TheMethod(); 
} 
interface IService<T> : IService { 
    // other stuff 
} 

następnie mają List<IService>, i po prostu:

foreach(var svc in list) svc.TheMethod(); 
+0

perfekcyjnie, dzięki! – fes