【问题标题】:Does the FtpWebResponse IDisposable close the response?FtpWebResponse IDisposable 是否关闭响应?
【发布时间】:2013-10-24 14:50:30
【问题描述】:

我在我的程序中使用以下代码,我还需要调用response.close()吗?或者FtpWebResponse IDisposable 实现是否关闭响应?

using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{

}

所以基本上,我需要这样做吗?

using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
    response.close();
}

【问题讨论】:

  • 扪心自问,如果 close 方法会被调用两次,会不会花费我更多?
  • @Izikon 会吗?据我所知,如果我这样做了,我的整个应用程序都会崩溃。也许你可以更具体一点,而不是问一个问题。
  • 这个问题读起来很有趣:stackoverflow.com/questions/3119288/…

标签: c# idisposable using ftpwebresponse


【解决方案1】:

不,您不必致电Close,因为Dispose 已经这样做了。 FtpWebResponse 继承自 WebResponse,并显式实现了 Dispose,内部调用 Close

WebResponse.cs 的代码来自:http://www.dotnetframework.org/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/fx/src/Net/System/Net/WebResponse@cs/1305376/WebResponse@cs

 /// <internalonly>
        void IDisposable.Dispose() {
            try
            {
                Close();
                OnDispose();
            }
            catch { }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2015-03-21
    • 2016-03-31
    • 2023-03-28
    • 2021-12-12
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多