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