3

プログラムで次のコードを使用していますが、まだ呼び出す必要がありますresponse.close()か? または、FtpWebResponse IDisposable実装は応答を閉じますか?

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

}

基本的に、これを行う必要がありますか?

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

1 に答える 1

4

Closeいいえ、Disposeすでに呼び出しているので、呼び出す必要はありません。FtpWebResponseから継承され、内部的に呼び出す をWebResponse明示的に実装しています。DisposeClose

からのコード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 { }
        }
于 2013-10-24T15:01:27.820 に答える