2010-06-25 64 views

回答

9

它确实有通过继承Dispose方法,但它是一个明确的实施。要调用它,你将不得不使用

((IDisposable)myObject).Dispose(); 

或者,当然,只是包装在一个using块,因为它明确你的电话。

+2

+1提及其明确实施。正如其他人所说的那样,但你仍然可以看到它 - 你回答了为什么你不容易看到它。 – 2010-06-25 14:42:41

+2

使用显式实现背后的原因是什么? – MCS 2010-06-25 14:43:03

+0

@MCS,这是个好问题!实际上,对于为什么某些类具有显式IDisposable实现的原因,这听起来像是一个很好的* new *问题,因为它掩盖了这样一个事实,即应该为普通开发人员处理该对象,因为他/她每次没有查阅文档使用一个类。 – 2010-06-25 14:48:25

10
+0

我看不出有任何Dispose方法无论是。 – MCS 2010-06-25 14:39:14

+2

向下滚动到“显式接口实现” – blu 2010-06-25 14:39:39

+0

噢,它在那里,就在“显式接口实现”下的页面下方。这是为什么?为什么当我有一个FtpWebResponse的实例时,这种方法不会在IntelliSense中显示? – MCS 2010-06-25 14:41:26

4

当您明确实施interface时,您将无法获得列表中的方法。您必须投射该对象才能实施interface以访问该方法。

public class MyClass : IDisposable 
{ 
    void IDisposable.Dispose() 
    { 
     throw new NotImplementedException(); 
    } 
} 

参考:http://msdn.microsoft.com/en-us/library/ms173157.aspx