Esta é uma questão de sintaxe. Eu tenho uma classe genérica que está herdando de uma classe base genérica e está aplicando uma restrição a um dos parâmetros de tipo. Também quero que a classe derivada implemente uma interface. Pela minha vida, não consigo descobrir a sintaxe correta.
Isso é o que eu tenho:
DerivedFoo<T1,T2> : ParentFoo<T1, T2> where T2 : IBar { ... }
A primeira coisa que me veio à mente foi:
DerivedFoo<T1,T2> : ParentFoo<T1, T2> where T2 : IBar, IFoo { ... }
Mas isso é incorreto, pois faz com que T2 precise implementar IBar e IFoo, não DerivedFoo para implementar IFoo.
Tentei pesquisar um pouco no Google, usar dois-pontos, ponto e vírgula, etc., mas não consegui. Tenho certeza de que a resposta é extremamente simples.