В этом примере из MS вы заметите, что после того, как мы читаем байт из потока памяти, он переходит в int, который затем должен быть преобразован в байт.Мне кажется странным, что такая функция, как .ReadByte()
, не возвращает байт в первую очередь.Есть ли причина, по которой М.С. так поступил?
// Read the remaining bytes, byte by byte.
while(count < memStream.Length)
{
byteArray[count++] =
Convert.ToByte(memStream.ReadByte());
}
мне пришла в голову мысль.Возможно, это сводится к использованию.Возможно, ReadByte()
часто используется для извлечения коротких длин, а последующие значения используются при извлечении с помощью множества длин
int length=ms.ReadByte();
ms.Read(buf,0,lenth);
, т.е. вы можете использовать длину без приведения.Это достаточно веская причина?