コード例 #1
0
        public override void SetLength(long value)
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value));
            }

            OnSetLength?.Invoke(this, value);
            baseStream_.SetLength(value);
        }
コード例 #2
0
        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;
            }
        }