Похоже, что основная цель здесь - предоставить вам удобный метод, чтобы убедиться, что у вас есть блок данных локально; например, при чтении «double» вы (как правило) хотели бы 8 байтов. Этот метод завершает:
- проверка, достаточно ли уже внутреннего буфера
- циклически повторяя 'Read' по мере необходимости
- проверка EOF (и с ошибками)
- защита для выбега
- обработка управления буфером, например периодическое копирование данных в обратном направлении или обработка различных индексов для циклического буфера
Тем не менее, кажется маловероятным, что вам нужно было бы вызывать его извне, если только вы не читали маленький байт [] '
Что касается внутреннего буфера; просто при десериализации вас:
- хочу свести к минимуму звонки на «Чтение»
- часто нужно заглядывать больше, чем на 1 байт (сложно без буфера)
- регулярно хотят выполнять операции с маленьким байтом [] (например, через BitConverter)
Так что просто работай