multiple - generics example in c#
C#genérico "donde la restricción" con la definición de "cualquier tipo genérico"? (2)
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 con ese tipo.
¿Tendría algún sentido hacer algo como esto?
interface IGenericCar< T > {...}
interface IGarrage< TCar, TCarType >
where TCar: IGenericCar< TCarType > {...}
Normalmente hay 2 formas de lograr esto
Opción 1: agregue otro parámetro a IGarrage que represente la T que se debe pasar a la IGenericCar<T>
interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }
Opción 2: defina una interfaz base para IGenericCar<T>
que no sea genérica y constriña contra esa interfaz
interface IGenericCar { ... }
interface IGenericCar<T> : IGenericCar { ... }
interface IGarrage<TCar> where TCar : IGenericCar { ... }