/// <summary>
        /// Reads <c>ushort</c> from the stream.
        /// </summary>
        public unsafe ushort ReadUshort()
        {
            if (blockRemaining > 2)
            {
                position       += 2;
                blockRemaining -= 2;
                return(BaseReader.ReadUshort());
            }
            else
            {
                ushort value;

                ReadBytes((byte *)&value, 2);
                return(value);
            }
        }
        /// <summary>
        /// Reads <c>ushort</c> from the stream.
        /// </summary>
        public ushort ReadUshort()
        {
            byte[] buffer = MoveInternal(2);
            ushort value;

            if (buffer != null)
            {
                value = BitConverter.ToUInt16(buffer, 0);
            }
            else
            {
                value = BaseReader.ReadUshort();
            }
            CheckMoveReader();
            return(value);
        }