次の関数について考えてみます。
private int GetSomethingFromFile(FileStream fs)
{
using (BinaryReader br = new BinaryReader(fs))
{
fs.Seek(0, SeekOrigin.Begin);
return br.ReadInt32();
}
}
FileStreamオブジェクトはパラメーターとして渡され、BinaryReaderはusingステートメントで宣言されます。そのFileStreamオブジェクトを使用しようとすると、この関数を呼び出した後、System.ObjectDisposedExceptionがスローされます。そのFileStreamオブジェクトがBinaryReaderオブジェクトと一緒に破棄されるのはなぜですか?