Предположим, что у меня есть метод как так:
public byte[] GetThoseBytes()
{
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
ms.WriteByte(1);
ms.WriteByte(2);
return ms.ToArray();
}
}
Это все еще расположило бы объект 'мс'? У меня есть сомнения, возможно, потому что что-то возвращается, прежде чем блок операторов закончен.
Спасибо, AJ.
Да. с использованием (x = e) {s}
- сахар для {x = e; попробуйте {s} finally {x.Dispose (); }}
Да, вся идея оператора Using в том, что он автоматически утилизирует поток/объект, который вы "используете". отлично сделано.
Да, Использование создает блок try..finally , поэтому он удаляет ms (и даже выполняет нулевую проверку в случае, если вы устанавливаете ns на null).