Если у меня есть следующий код:
FileStream fs = new FileStream(...);
TextWriter tw = new StreamWriter(fs);
Должен ли я вызывать только tw.Close () или fs.Close ()? Я постоянно использую TextWriter во всем приложении, поэтому я не могу просто обернуть его в блок Using (...), поскольку мне нужно иметь возможность использовать его в нескольких точках.
В противном случае, я бы просто написал это как:
using (FileStream fs = new FileStream(...))
{
using (TextWriter tw = new StreamWriter(fs))
{
// do stuff
}
}
И вообще избегайте этой проблемы. Но я не знаю, что делать в таких условиях. Я закрываю tw, fs или оба?
Кроме того, в более общем плане: Если я собираю несколько потоков вместе, например, C (B (A)), могу ли я вызвать Close / Dispose на C, а затем не беспокоиться о необходимости вызова его на B и A?