Этот код:
Using sr As StreamReader = New StreamReader(OpenFile)
str = sr.ReadToEnd
sr.Close()
End Using
Действительно эквивалентно этому:
Dim sr As StreamReader = Nothing
Try
sr = New StreamReader(OpenFile)
sr.Close() ' notice: unnecessary '
Finally
sr.Close()
End Try
Имейте в виду, что код в блоке Finally
будет всегда выполняться до того, как метод вернется (если он выдает свое собственное исключение, то вы попадаете в мир боли) , Таким образом, строка sr.Close
, имеющаяся в вашем блоке Using
, является лишней (обратите внимание, что в эквивалентном коде, использующем Try
/ Finally
, это не нужно, поскольку sr.Close
будет вызываться в Finally
независимо от того, исключение выдается или нет).