public override long Seek()

in src/RecyclableMemoryStream.cs [1223:1248]


        public override long Seek(long offset, SeekOrigin loc)
        {
            this.CheckDisposed();

            long newPosition;
            switch (loc)
            {
                case SeekOrigin.Begin:
                    newPosition = offset;
                    break;
                case SeekOrigin.Current:
                    newPosition = offset + this.position;
                    break;
                case SeekOrigin.End:
                    newPosition = offset + this.length;
                    break;
                default:
                    throw new ArgumentException("Invalid seek origin.", nameof(loc));
            }
            if (newPosition < 0)
            {
                throw new IOException("Seek before beginning.");
            }
            this.position = newPosition;
            return this.position;
        }