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#のより良い方法はありますか?それとも、複数のレベルのネストに固執していますか?