代码检查:忽略了 'Stream.Read()' 实际读取的字节数
此检查会识别 Stream.Read 的返回值(表示实际读取的字节数)被忽略的情况。 这可能导致部分读取数据的处理不正确。
public void Test(Stream stream)
{
Span<byte> buffer = stackalloc byte[16];
stream.Read(buffer);
}
public void Test(Stream stream)
{
Span<byte> buffer = stackalloc byte[16];
stream.ReadExactly(buffer);
}
建议的修复将 Stream.Read 替换为 Stream.ReadExactly ,以确保读取整个缓冲区,或者在无法完成时抛出异常。
最后修改日期: 2025年 9月 27日