C'est parce que, même si MonTruc dérive de IMonInterface, MyClass<MonTruc> ne dérive pas de MyClass<IMonInterface>.
Ce n'est pas possible en .NET 3.5 et antérieur, mais ça a été rendu possible en .NET 4. Donc si tu peux migrer vers la nouvelle version tant mieux, sinon il va falloir te débrouiller autrement 
Une technique pour contourner cette limitation est de créer une classe non générique MaClasse qui hérite de IMonInterface, et faire hériter MaClasse<T> de MaClasse.
IMonInterface -> MaClasse -> MaClasse<T>
Du coup tu peux faire :
MaClasse marche = new MaClasse<MonTruc>();
Partager