В C #, если я хочу детерминистически очистить неуправляемые ресурсы, я могу использовать ключевое слово using Но для нескольких зависимых объектов, это заканчивается вложением дальше и дальше:
using (FileStream fs = new FileStream("c:\file.txt", FileMode.Open))
{
using (BufferedStream bs = new BufferedStream(fs))
{
using (StreamReader sr = new StreamReader(bs))
{
// use sr, and have everything cleaned up when done.
}
}
}
В C ++ я привык использовать деструкторы, чтобы делать это так:
{
FileStream fs("c:\file.txt", FileMode.Open);
BufferedStream bs(fs);
StreamReader sr(bs);
// use sr, and have everything cleaned up when done.
}
Есть ли лучший способ сделать это в C #? Или я застрял на нескольких уровнях вложенности?