IDisposableを実装するクラスがあります
public class Foo: IDisposable {
public void Dispose() {
// do the disposing
}
}
次に、次の方法でクラスを使用するメソッドがあります。
void Bar() {
using (var f = new Foo()) {
// do whatever
}
}
コードがusing{...}境界を離れると、FooクラスのDisposeメソッドが呼び出されます。Disposeメソッドで、コードがブロックを使用して自発的に終了するのか、例外の結果として終了するのかをどのように検出できますか?