char ReadChar() { if (_pos == _used) { _pos = 0; _used = _r.Read(_buffer, 0, _buffer.Length); } if (_pos == _used) { return (char)0; } return _buffer[_pos++]; }