Déjame dar un ejemplo:
Tengo una definición genérica de clase / interfaz:
interface IGenericCar< T > {...}Tengo otra clase / interfaz que quiero relacionar con la clase anterior, por ejemplo:
interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}
Básicamente, quiero que mi IGarrage genérico dependa de IGenericCar, independientemente de si es IGenericCar<int>o IGenericCar<System.Color>, porque no tengo ninguna dependencia de ese tipo.
c#
generics
where
type-constraints
Nenad
fuente
fuente

Tdentro delIGarage<TCar>? No veo ninguna posibilidad en la opción 2. La mejor solución sería si seIGarage<TCar>encontrara el tipoTanalizando el tipoTCar.IGarage<IGenericCar<?>>.TellMeAboutCarsInGeneral(), que probablemente sería el resultado de un diseño deficiente), pero lo he hecho en mis retoques, y es posible.IGarrage<TCar>realmente maneja el tipo genérico subyacente (por ejemplo, maneja una propiedad de dicho tipo), entonces necesita saber el tipo, lo que requiere que especifique el tipo, que es la opción 1 (la única opción viable entonces). Sin embargo, siIGarrage<TCar>no maneja directamente el tipo genérico subyacente (todo elIGarrage<TCar>código es independiente de este tipo subyacente), la opción 2 es válida.¿Tendría algún sentido hacer algo como:
fuente