public override void SetLength(long value) { if (value < 0) { throw new ArgumentOutOfRangeException(nameof(value)); } OnSetLength?.Invoke(this, value); baseStream_.SetLength(value); }
public override void SetLength(long value) { OnSetLength?.Invoke(this, value); long originalLength = Length; long additionalAmount = value - Length; baseStream_.SetLength(value); if (additionalAmount > 0) { byte[] initPayload = new byte[additionalAmount]; for (int i = 0; i < initPayload.Length; i++) { initPayload[i] = (byte)(i + (value / 2)); } long originalPos = baseStream_.Position; baseStream_.Position = originalLength; baseStream_.Write(initPayload, 0, initPayload.Length); baseStream_.Position = originalPos; } }