Это может показаться странным вопросом, но я смотрел на него, потому что слышал, как кто-то утверждает, что вы должны вызывать Close () для FileStream, даже если он находится в блоке using (и у них есть код, где Close () вызывается прямо в конце блока).
Я знаю, что Close () предназначен для вызова Dispose (), но я подумал, что буду смотреть глубже, так как это код .Net 1.1, и большая часть моего опыта была с 2.0.
Одна вещь, которая поразила меня, заключалась в том, что в документации MSDN для FileStream включены Dispose () и Dispose (bool) для .Net 2.0, но только Dispose (bool) для .Net 1.1.
Я подумал, что это может быть недосмотр, поэтому я использовал Reflector для просмотра сборки - и там я вижу Dispose (bool), но не Dispose ().
Это правильно? Если да, то что здесь за история? FileStream работает в блоке using, который, как я думал, должен реализовывать IDisposable, который, насколько мне известно, объявляет только Dispose ().
Происходит ли какое-то волшебство компилятора или я где-то пропускаю скрытую реализацию Dispose () (которая, предположительно, вызывает Dispose (true) или Dispose (false)?)
Наконец (без каламбура), можете ли вы подтвердить, что определение области действия FileStream в блоке using закроет поток при выходе из области действия в .Net 1.1?
[править]
Просто чтобы уточнить, это код C #. Я понимаю, что VB.Net не получал оператор использования до .Net 2.0, но, насколько я понимаю, он был в C # в 1.1 (и мой код 1.1 содержит его и компилирует)