2010-06-25 85 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

相關問題