variable multiple method generic example create clase c# generics where type-constraints

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:

  1. Tengo una definición genérica de clase / interfaz:

    interface IGenericCar< T > {...}

  2. 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 { ... }