FtpWebResponse实现了IDisposable,但它没有Dispose方法。怎么可能?
答案 0 :(得分:10)
它在基类WebResponse中实现,请参阅http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx
答案 1 :(得分:9)
它通过继承确实有Dispose方法,但它是一个显式实现。要调用它,您必须使用
((IDisposable)myObject).Dispose();
或者,当然,只需将其包装在using
块中,因为它会为您显式调用。
答案 2 :(得分:4)
当您明确实施interface
时,您将无法获得列表中的方法。您必须将该对象强制转换为已实现的interface
才能访问该方法。
public class MyClass : IDisposable
{
void IDisposable.Dispose()
{
throw new NotImplementedException();
}
}
答案 3 :(得分:3)
它是在基类WebResponse
中实现的void IDisposable.Dispose()
{
try
{
this.Close();
this.OnDispose();
}
catch
{
}
}
alt text http://img227.imageshack.us/img227/2428/redgatesnetreflector.png
答案 4 :(得分:2)
它继承自实现这些方法的System.Net.WebResponse。