预防异常:实现IDisposable 来自己做清理
流很好用,因为它们已经有代码来在它们被处置的时候关闭自己。但是如果你自己写了类需要在被处置的时候做某些处理呢?如果你自己写的类中的某些代码可以再using 中得以运行岂不是很酷?
使用IDisposable 接口就可以在 C# 中做到这一点。只有实现了 IDisposable 接口的类才可以 using 中使用,否则无法编译。实现 IDisposable 接口,把你自己的清理代码写在 Dispose ()方法中,就象下面这样:
我们可以使用多重的using 语句。首先,使用一个内建的实现了 IDisposable 的类型, Stream 。然后,操作我们更新了的 Nectar 对象,它也实现了 IDisposable :