Хорошей идеей будет поместить все зависимые ресурсы в свои собственные блоки using
с точки зрения удобочитаемости и удобства обслуживания, как и все остальное. например в приведенном ниже коде после последней скобки невозможно попытаться получить доступ к mstr
, поскольку он находится в пределах блока, в котором он действителен:
using (MemoryStream mstr = new MemoryStream())
using (StreamWriter w = new StreamWriter(mstr) {
....
}
// cannot attempt to access mstr here
Если вы не включите его таким образом, то все равно возможно получить доступ к mstr
вне области действия, где он действителен
MemoryStream mstr = new MemoryStream();
using (StreamWriter w = new StreamWriter(mstr) {
....
}
mstr.Write(...); // KABOOM! ObjectDisposedException occurs here!
Так что, хотя это не всегда может быть необходимо (а в данном случае это не так), это хорошая идея, так как она проясняет и укрепляет ваше намерение относительно его объема.