Trong this example from MS, bạn sẽ nhận thấy rằng sau khi chúng ta đọc một byte từ luồng bộ nhớ, nó đi vào một int mà sau đó phải được chuyển đổi sang byte. Nó stikes tôi là lạ rằng một chức năng như .ReadByte()
không trả lại một byte ở nơi đầu tiên. Có một lý do tại sao MS đã làm nó theo cách này?MemoryStream: tại sao chuyển đổi sang byte sau khi readByte
// Read the remaining bytes, byte by byte.
while(count < memStream.Length)
{
byteArray[count++] =
Convert.ToByte(memStream.ReadByte());
}
một ý nghĩ xảy ra với tôi. Có lẽ điều này đi xuống để sử dụng. Có lẽ ReadByte()
thường được sử dụng để lấy độ dài ngắn, mà subsequents được tiêu thụ trong lấy qua nhiều chiều dài
int length=ms.ReadByte();
ms.Read(buf,0,lenth);
ví dụ: bạn có thể sử dụng dài mà không có một dàn diễn viên. Đây có phải là lý do đủ tốt không?
Bạn nên kiểm tra 'ToArray()' trong trường hợp bạn muốn mảng byte – V4Vendetta