void Reallocate(int requiredSize) { int newSize = (_capacity > 0) ? _capacity : 1; while(newSize < requiredSize) newSize <<= 1; byte[] data = new byte[newSize]; if(null != _data) _data.CopyTo(data, 0); _data = data; _capacity = newSize; }