FtpWebResponse实现了 IDisposable,但它没有 Dispose 方法。这怎么可能?
问问题
434 次
5 回答
10
它在基类 WebResponse 中实现,参见http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx
于 2010-06-25T14:38:26.233 回答
9
它确实具有通过继承的 Dispose 方法,但它是一个显式实现。要调用它,您必须使用
((IDisposable)myObject).Dispose();
或者,当然,只是将它包装在一个using
块中,因为它会为您进行显式调用。
于 2010-06-25T14:40:08.023 回答
4
当您interface
显式实现时,您将不会在列表中获得该方法。您必须将该对象强制转换为实现interface
才能访问该方法。
public class MyClass : IDisposable
{
void IDisposable.Dispose()
{
throw new NotImplementedException();
}
}
于 2010-06-25T14:42:52.510 回答
3
它在基类 WebResponse 中实现
void IDisposable.Dispose()
{
try
{
this.Close();
this.OnDispose();
}
catch
{
}
}
替代文字 http://img227.imageshack.us/img227/2428/redgatesnetreflector.png
于 2010-06-25T14:39:32.767 回答
2
它继承自实现这些方法的System.Net.WebResponse 。
于 2010-06-25T14:40:12.347 回答