Экономит очень мало памяти. Объем памяти, который будет занимать пустая List<byte[]>
, равен размеру байта.
Причина в том, что вашей ссылочной переменной _stream
нужно всего лишь выделить достаточно памяти для хранения ссылки на объект. Как только объект выделен, он будет занимать определенный объем памяти, который может со временем увеличиваться или уменьшаться, например, когда к List
добавляются новые byte[]
s. Однако память, занятая ссылкой на этот объект, останется прежним размером.
Это проще и менее склонно к угловым случаям, которые вызывают у вас головные боли:
private List<byte[]> _stream = new List<byte[]>();
public object Stream
{
get
{
return _stream;
}
}
Хотя, в большинстве случаев, на самом деле не оптимально возвращать ссылки на закрытые элементы, когда они являются коллекциями / массивами и т. Д. Лучше вернуть _stream.AsReadOnlyCollection()
.