ПОНЯТНО О Visual Basic NET (том 3)

       

Nothing


Вы можете приказать переменной ссылочного типа, чтобы она ни на что не ссылалась. Делается это при помощи ключевого слова Nothing:

        B = Nothing

(Вы можете вообразить, что при этом в ячейке B вместо адреса 002040 возникает какой-нибудь невозможный адрес, например,  -99999.)

При выполнении следующего фрагмента

Dim B As New Класс

B.Поле= 5

B = Nothing

VB первым оператором отведет область памяти под объект, а третьим превратит ее в мусор (другими словами – освободит). Сборщик мусора VB в свой черед приберет мусор, чтобы в дальнейшем использовать освободившуюся область памяти для полезных дел. Естественно, переменной B вы больше не сможете пользоваться, пока снова не придадите ей нормальную ссылку, например, оператором B = A.

Таким образом, вы видите, что применяя Nothing, вы освобождаете ненужную вам область памяти. Это сулит выгоды экономным создателям программ, использующим большие объемы разных данных в разные моменты выполнения процедуры. Должен сказать, что при этом освобождается не только память, но и другие ресурсы компьютера, поэтому многие рекомендуют использовать Nothing, как только в ссылочной переменной отпадает необходимость. Впрочем, не забывайте, что ресурсы освобождаются безо всяких хлопот и сами собой, как только процедура, в которой объявлена переменная, заканчивает свою работу.

Обратите внимание, что для того, чтобы стать мусором, область памяти должна потерять все ссылки на себя. Рассмотрим пример:

        Dim A, B As Класс

        A = New Класс

        B = A

        A = Nothing

Здесь область памяти, отведенная вторым оператором под экземпляр класса, не становится на четвертом операторе мусором, так как на нее сохраняется ссылка от переменной B.

Когда дело касается массивов, то вы можете освободить память также оператором

        Erase  B



Содержание раздела