Я безуспешно пробую следующий дизайн:
abstract class Foo<T>
{
abstract T Output { get; }
}
class Bar
{
List<Foo> Foos;
}
Я не хотел бы использовать список массивов, потому что мне пришлось бы использовать небезопасные приведения для получения типа. Я бы хотел, чтобы Foo печатался так, чтобы «Вывод» не был просто объектом, и в этом случае мне пришлось бы также использовать небезопасные приведения.
Поскольку мой код в данный момент используется, я использую Foo без типизации с Вывод как объект.