Я пытаюсь найти правильный способ использования универсального списка общих интерфейсов в качестве переменной.
Вот пример. Вероятно, это не самое лучшее, но, надеюсь, вы получите следующее:
public interface IPrimitive<T>
{
T Value { get; }
}
а затем в другом классе, я хочу, чтобы иметь возможность объявлять переменную, которая содержит список объектов, которые реализуют IPrimitive<T>
для произвольного T
.
// I know this line will not compile because I do not define T
List<IPrimitive<T>> primitives = new List<IPrimitives<T>>;
primitives.Add(new Star()); // Assuming Star implements IPrimitive<X>
primitives.Add(new Sun()); // Assuming Sun implements IPrimitive<Y>
Обратите внимание, что T
in IPrimitive<T>
может отличаться для каждой записи в списке.
Любые идеи о том, как я мог бы установить такие отношения? Альтернативные подходы?