#vb.net
#vb.net
Вопрос:
У меня есть вопрос о жизненном цикле для vb.net объект в чем разница между этими двумя функциями:
функция 1:
Private Function MyF() As Integer
Using c As New cMyclass
If c.somework() = 1 Then Return 1
End Using
Return 0
End Function
функция 2:
Private Function MyF() As Integer
Dim c As New myClass
If c.somework() = 1 Then Return 1
Return 0
End Function
- какое решение лучше?
Комментарии:
1. Верхний использует using, а второй использует переменную. «Лучшее» решение основано на мнениях и субъективно
2. Вопрос о домашнем задании?
3. Первый из них удаляет объект после достижения конечного использования . То же самое, что делать c = Ничего
4. @Innat3: вы путаете разные вещи.
using
Оператор является синтаксическим сахаром для try-finally, где finally вызываетDipose
. Речь идет о неуправляемых ресурсах, которые могут быть там освобождены. Установка для объекта значения null / Nothing в большинстве случаев не дает ничего полезного. Это даже не нужно для сборщика гаража, что в любом случае является другой темой.5. Документация дает вам действительно хорошее объяснение. Даже с примерами (попробуйте finally dispose).
Ответ №1:
Документация дает вам действительно хорошее объяснение. Даже с примерами.
Это
Using resource As New resourceType
' Insert code to work with resource.
End Using
Такой же, как этот
' For the acquisition and disposal of resource, the following
' Try construction is equivalent to the Using block.
Dim resource As New resourceType
Try
' Insert code to work with resource.
Finally
If resource IsNot Nothing Then
resource.Dispose()
End If
End Try
Удаление объектов — это то, что всегда нужно делать, когда это возможно.