FtpWebResponse實現了IDisposable,但它沒有Dispose方法。這怎麼可能?如果此類沒有Dispose方法,該類如何實現IDisposable?
5
A
回答
9
它確實有通過繼承Dispose方法,但它是一個明確的實施。要調用它,你將不得不使用
((IDisposable)myObject).Dispose();
或者,當然,只是包裝在一個using
塊,因爲它明確你的電話。
10
其在基類WebResponse的落實,見http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx
3
它在基類WebResponse的實施
void IDisposable.Dispose()
{
try
{
this.Close();
this.OnDispose();
}
catch
{
}
}
alt text http://img227.imageshack.us/img227/2428/redgatesnetreflector.png
2
它從System.Net.WebResponse繼承,它實現了這些方法。
4
當您明確實施interface
時,您將無法獲得列表中的方法。您必須投射該對象才能實施interface
以訪問該方法。
public class MyClass : IDisposable
{
void IDisposable.Dispose()
{
throw new NotImplementedException();
}
}
相關問題
- 1. 如果我有一個Dispose方法,我必須實現IDisposable嗎?
- 2. 實現IDisposable無Dispose函數的類?
- 3. 如何處理一個類沒有實現IDisposable的屬性?
- 4. 如何實現Dispose在繼承類
- 5. CLR如何找到實現IDisposable的類?
- 6. 在父類還實現IDisposable時在子類上實現IDisposable
- 7. System.ServiceModel.ServiceHost實現IDisposable,但Dispose未公開
- 8. 如果Android中有多個類,應該在哪裏實現AsyncTask類的方法?
- 9. 如何查找所有實現IDisposable的類?
- 10. 所有類應該實現IDisposable接口嗎?
- 11. 應該如何使用LibGDX dispose()方法?
- 12. 如何實現GetEnumerator()和Dispose()?
- 13. 如何實現從子類方法
- 14. 如何從實現類的方法
- 15. 知道如果兒童類實現一個父類的方法
- 16. 調用所有實現該方法的類的方法
- 17. 如何從類調用方法但是從任何接口實現此方法?
- 18. 的DataContext沒有Dispose()方法
- 19. 如何調用run方法實現類的方法沒有硬編碼
- 20. ES6:如果類有方法?
- 21. 我們可以使用Dispose方法而不實現IDisposable接口嗎?
- 22. C++如何實現此類結構?
- 23. 如何發現哪些類使用Eclipse實現類的方法?
- 24. 爲什麼基類(不實現Serializable)如果其子類實現Serializable,應該沒有參數構造函數?
- 25. 假陽性:修復此實現了IDisposable的,以符合Dispose模式
- 26. 如何在繼承自SocketAsyncEventArgs的類中實現IDisposable接口
- 27. 爲什麼Stream類實現IDisposable?
- 28. 如何使用futex實現此方法?
- 29. 我的類實現與方法的接口。沒有實現,但沒有錯誤
- 30. 如何在該類方法內創建類實例?
+1提及其明確實施。正如其他人所說的那樣,但你仍然可以看到它 - 你回答了爲什麼你不容易看到它。 – 2010-06-25 14:42:41
使用顯式實現背後的原因是什麼? – MCS 2010-06-25 14:43:03
@MCS,這是個好問題!實際上,對於爲什麼某些類具有顯式IDisposable實現的原因,這聽起來像是一個很好的* new *問題,因爲它掩蓋了這樣一個事實,即應該爲普通開發人員處理該對象,因爲他/她每次沒有查閱文檔使用一個類。 – 2010-06-25 14:48:25