Disons que j'ai une interface de base qui est générique actionnés par l':C# génériques question - contrainte d'interface générique
public interface Inteface<T> {
void Foo(T t);
}
Maintenant, j'ai une mise en œuvre concrète de cette interface qui est aussi générique:
public class InterfaceImpl<T> {
public void Foo(T t) {
// Whatever
}
}
Cela semble OK, mais maintenant disons que j'ai d'autres classes:
public class Ololo {
public void BadFunction<TShouldModelInterface>(TShouldModelInterface shouldModelInterface) {
// Whatever
}
}
Et disons Je veux effectuer une vérification si TShouldModelInterface
implémente effectivement l'un des Interface<T>
possibles.
Si l'interface n'était pas générique, j'écrirais simplement quelque chose comme where TShouldModelInterface : Interface
.
Mais est-il possible de résoudre ce problème si l'interface est ?
J'ai modifié votre titre un peu il est moins générique –
Ahahah .. @ Daniel en effet moins « générique » –
Dans votre exemple, « » InterfaceImpl « » ne met pas en œuvre « » Inteface « » (manquant "r", btw). Vous devez le déclarer comme '' classe publique InterfaceImpl : Inteface '' –