的虽然有不少Q &的作为与IDisposable
要在SO发现,我暂时还没有发现一个答案:明确实施了IDisposable
我通常遵循惯例,当一个我类拥有一个IDisposable
对象,那么它也执行IDisposable
并在拥有的对象上调用Dispose
。但是最近我遇到了一个明确实施了IDisposable
的课程,因此阻止我直接调用Dispose
,迫使我将其投入使用,这让我感到烦恼和不必要。
所以这个问题:为什么和什么时候会想要使用明确的接口实现IDisposable
?我知道明确地实现一个接口有完美的和有效的理由,但是关于IDisposable
,原因对我来说不是很清楚。
这些“好的和有效的原因”是什么,为什么他们不应该支持'IDisposable'呢?为什么将一个对象投射到“IDisposable”是“烦人的”? – chiccodoro 2011-04-07 07:09:44
有时,类有必要实现两个或更多个成员名称冲突的接口。对于明确的界面命名来说,这是一个很好且适当的用法。我同意OP的意见,任意命名清理方法的东西除Dispose之外是愚蠢的。即使一个类有一个Close方法,这并不意味着它也不应该有一个Dispose方法。由于在调用Close之后调用Dispose的情况最差,所以这两种方法有什么不对? – supercat 2011-04-07 07:21:41
@chiccodoro:IMO显式接口实现大多在需要实现两个具有冲突成员的接口时非常有用。在任何其他情况下,如果有一个对象可以转换为接口而不是“存在”,那么该接口是不自然且令人讨厌的。 – 2011-04-07 07:22:30