为什么HttpWebResponse上没有Dispose方法

use*_*414 15 .net c# idisposable using-statement

HttpWebReponse实现IDisposable接口,但为什么没有Dispose方法.它只包含Close方法.using这个类仍然可以使用模式吗?

Jeh*_*hof 25

HttpWebResponse 显式实现了 IDisposable接口.因此,Dispose只有在将HttpWebResponse转换为时才能调用IDisposable.CloseHttpWebResponse 的方法在内部调用Dispose.

HttpWebResponse response = // assigned from somewhere
IDisposable disposableResponse = response as IDisposable;

disposableResponse.Dispose();
Run Code Online (Sandbox Code Playgroud)

HttpWebResponse实现开始,IDisposable您可以将它与using语句一起使用.

HttpWebResponse response = // assigned from somewhere

using(response) {
  // do your work;
}
Run Code Online (Sandbox Code Playgroud)

  • @jgauffin,因为(某人)微软认为它会使你的代码更易于编写`response.Close();`而不是`response.Dispose();`.所有IO /流类必须为'Close`d的原因相同. (4认同)