コードインスペクション:'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 に置き換えて、バッファー全体が読み取られるか、それが不可能な場合は例外がスローされることを確認します。
2026 年 6 月 12 日