public virtual void Unread(byte b) { if (_hasUnread) throw new IOException("Can't unread a second byte."); _unreadByte = b; _hasUnread = true; }