documentation for Stream.Read
说:
如果流中没有更多数据> >> >> >> >> >> >> >> >> >> >>
从这里可以看出,Read
即使0传递给count
参数也不应该返回0。
但是我用MemoryStream
测试了它,它返回0:
var mem = new MemoryStream(new byte[] {1, 2, 3, 4});
var buf = new byte[0];
var ret = mem.Read(buf, 0, buf.Length);
Console.WriteLine(ret); // prints 0
这是否意味着文档丢失了什么?
如果count
为0,那么实现是否会抛出异常?
答案 0 :(得分:0)
您已请求0个字节,因此Read
函数只读取零个字节。
输出为0,它基于documentation:
返回
读入缓冲区的总字节数。这个 如果有很多字节,则可以小于请求的字节数 当前不可用,如果流的末尾已经为零,则为零(0) 达到。
在您的示例
中,零是'请求的字节数'