Я создаю систему обмена сообщениями для использования в игре XNA. Мои типы сообщений являются структурами, потому что я хочу, чтобы они вели себя как типы значений.
struct MyMessageType1 : IMessage {}
struct MyMessageType2 : IMessage {}
List<IMessage> messageQueue = new List<IMessage>();
Я хочу иметь возможность хранить сообщения разных типов в моей очереди сообщений, но я хочу делать это без упаковки какого-либо из них.
Если у меня есть структуры, реализующие интерфейс, такой как IMessage, и я пытаюсь хранить их в списке, они упаковываются.
Я не знаю заранее все возможные типы сообщений, поэтому я не могу просто жестко закодировать один список для каждого типа.
Итак, вопрос в том, как можно Я храню список структур разных типов без их упаковки?