因为我在这里使用"使用",如果在TRY中有任何位置,FtpWebRequest,FtpWebRespons和responseStream会自动关闭吗?
Try
Dim request As FtpWebRequest = CType(WebRequest.Create(""), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails
request.Credentials = New NetworkCredential("", "")
Using response As FtpWebResponse = CType(request.GetResponse(), FtpWebResponse)
Using responseStream As Stream = response.GetResponseStream()
Using reader As New StreamReader(responseStream)
TextBox1.Text = reader.ReadToEnd
TextBox1.Text += vbNewLine
TextBox1.Text += vbNewLine
' Use the + for appending (set the textbox to multiline)
End Using
End Using
End Using
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
Run Code Online (Sandbox Code Playgroud)
是的,这三个都将被关闭.
该Using语句最终调用Dipose实现的类上的方法IDisposable(这发生在Finally编译器生成的部分中).在这种情况下,Dispose调用时这些类将关闭.
这个例子很少 - 如果流程退出(例如通过调用语句Environment.Exit的主体Using),那么Finally块和处理就不会发生.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |