I'm using the following code in my program, would I still need to call response.close()? Or does the FtpWebResponse IDisposable implementation close the response?

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

}

So basically, would I need to do this?

using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
    response.close();
}
有帮助吗?

解决方案

No you don't have to call Close, since Dispose already does that. FtpWebResponse is inherited from WebResponse and it has explicitly implemented Dispose, which internally call Close.

Code for WebResponse.cs from : 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 { }
        }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top