Основной тип базового блока моего приложения распадается на тип (класс или структуру), который содержит некоторые стандартные типы значений (int, bool и т. Д.) И некоторые типы массивов стандартных типов значений, где будет небольшой (но неизвестно) количество элементов в коллекции.Как создать коллекцию типов значений в .NET?
Учитывая, что у меня есть много примеров вышеуказанного строительного блока, я хотел бы ограничить использование памяти моего базового типа, используя массив/коллекцию как Тип значения вместо стандартного ссылочного типа. Отчасти проблема заключается в том, что мое стандартное использование будет состоять в том, чтобы массивы, содержащие нуль, один или два элемента в них, и накладные расходы ссылочного типа массива в этом сценарии запретительны.
У меня есть эмпирическое наблюдение, и исследование подтвердило, что сама оболочка массива вводит нежелательные (по мне, в этой ситуации) накладные расходы в каждом случае.
Как создать коллекцию Value Type/Struct в .NET?
Боковое примечание: интересно, что язык Swift от Apple по умолчанию имеет массивы как значения.
упреждающего Комментарий
Я полностью осознаю, что выше не является стандартным способом с помощью платформы .NET и очень плохая практика, и т.д ... так что не надо комментировать по этому поводу. Я просто хочу знать, как добиться того, что я прошу.
Вы хотите иметь массивы типов значений внутри своих структур?Или массивы структур без накладных расходов массива? –
@ThomasBoby Первое - это то, что я спрашивал, но он окажется последним, потому что содержимое массива внутри моей структуры - это сами структуры. Попытка сохранить все как структуру, чтобы избежать давления памяти. – Sam
Вы не можете и не хотите. Почему бы каким-то образом создать ограничение по типу массива с ограничением памяти? Я был бы склонен думать об обратном. – InBetween