Я пытаюсь найти правильный способ использования универсального списка универсальных интерфейсов в качестве переменной.
Вот пример. Это, вероятно, не самый лучший, но, надеюсь, вы поймете:
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
в IPrimitive<T>
может отличаться для каждой записи в списке.
Любые идеи о том, как я мог бы установить такие отношения? Альтернативные подходы?