Приведу пример:
У меня есть определение общего класса / интерфейса:
interface IGenericCar< T > {...}У меня есть другой класс / интерфейс, который я хочу связать с классом выше, например:
interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}
По сути, я хочу, чтобы мой общий IGarrage зависел от него IGenericCar, независимо от того, является он IGenericCar<int>или IGenericCar<System.Color>, потому что у меня нет никакой зависимости от этого типа.
TвнутриIGarage<TCar>? Я не вижу возможности в варианте 2. Лучшим решением было быIGarage<TCar>найти типTпутем анализа типаTCar.