Я только что узнал, что, как и С#, VB.NET также имеет ключевое слово using
.
До сих пор я думал, что этого не было (глупо от меня, я знаю...) и делал вот так:
With New OleDbConnection(MyConnectionString)
' Do stuff
End With
Каковы последствия этого по сравнению с выполнением этого с инструкцией using
вроде этого
Using cn as New OleDBConnection(MyConnectionString)
With cn
' Do stuff with cn
End With
End using
UPDATE:
Я должен добавить, что я знаком с тем, что делает оператор using
в том, что он удаляет объект при выходе из конструкции.
Однако, насколько я понимаю, конструкция With New ...
будет иметь объект, помеченный как объект, готовый для сбора мусора, когда он выходит из области видимости.
Итак, мой вопрос на самом деле, единственная разница в том, что с using
я сразу же выпущу память, тогда как с конструкцией With
она будет выпущена всякий раз, когда GC это нравится? Или я пропущу что-то большее здесь?
Есть ли какие-либо последствия для лучшей практики? Должен ли я перейти и переписать весь код, используя With New MyDisposableObject() ... End With
как Using o as New MyDisposableObject()
?