В этом примере из MS вы заметите, что после чтения байта из потока памяти он переходит в int, который затем должен быть преобразован в байт. Мне кажется странным, что функция типа .ReadByte()
не возвращает байт в первую очередь. Есть ли причина, почему MS сделала это таким образом?
// 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);
то есть. вы можете использовать длину без броска. Это достаточно хорошая причина?