Есть ли способ иметь несколько типов структуры в списке, используя метод, описанный для классов here?Несколько типов структур в одном списке
Отсносящийся на один ответ, который сказал, чтобы наследовать от абстрактного класса (не представляется возможным для структур) или интерфейса я пришел с этим:
public interface IMemorable {}
public struct Memorable<type> : IMemorable where type : struct
{
private type Data;
public Memorable<type> (type data)
{
Data = data;
}
}
и внедрение Перечислите этот путь:
List<Memorable> memorables;
memorables.Add (new Memorable<someStruct>());
memorables.Add (new Memorable<otherStruct> (new otherStruct (6, "Six")));
Который должен работать, поскольку он работает с классами и Структуры действительно поддерживают наследование интерфейсов, я думаю?
Я получаю эту ошибку, хотя:
Assets/Test.cs(51,22): error CS0305: Using the generic type `Memorable<T>' requires `1' type argument(s)
В декларации Список Line
Или вы можете привести меня в какой-то лучшее решение ... Что касается производительности, то я, вероятно, нужно хранить несколько тысяч этих структур. Я не уверен, что в случае, если такой подход каким-то образом будет работать, классы, наследующие от абстрактного класса, будут лучше подходят ...
Можете ли вы дать мне совет?
* why * Вы хотите сделать это?Я уверен, что есть другие способы решения ваших проблем с производительностью. – BrokenGlass
Обратите внимание, что сохранение структур как интерфейса полностью разрушает любое преимущество в производительности, которое вы могли бы снимать, поскольку будет храниться только ссылка на экземпляр в штучной упаковке. – BrokenGlass
. Как вы думаете, используя классы с абстрактный класс, поскольку база была бы лучше? : | Я делаю тест времени выполнения :) – Seneral