Как правило, существует два способа достижения этого
Параметр1: добавьте еще один параметр в IGarrage, представляющий T, который должен быть передан в IGenericCar<T>
ограничение
interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }
Option2: Определите базовый интерфейс для IGenericCar<T>
, который не является общим и ограничивает этот интерфейс
interface IGenericCar { ... }
interface IGenericCar<T> : IGenericCar { ... }
interface IGarrage<TCar> where TCar : IGenericCar { ... }