Иллюстрированный самоучитель по VB.NET

         

Is и Nothing


Оператор Is проверяет, ссылаются ли две объектные переменные на одну область памяти. Следующий фрагмент в обоих случаях выводит True, поскольку в результате операций присваивания все объектные переменные ссылаются на одну область памяти:

Dim Objectl As New Object()

Dim ObjectZ As New Object()

Dim Objects As New Object()

ObjectZ =Object1

Objects Object2

Console.WriteLine(Objectl Is Object2)

Console.WriteLine(Object1 Is Object3)

Как и в прежних версиях VB, присваивание объектной переменной значения Nothi ng разрывает ее связь с блоком памяти. Когда объектная переменная равна Nothing, она не ассоциируется ни с каким объектом. В этом состоянии находятся все объектные переменные, которые были объявлены в программе, но еще не инициализировались. В программе часто встречаются проверки следующего вида:

If anObject Is Nothing Then

' Переменная не связана с объектом, присвоить значение

Else

' Значение было присвоено ранее

End If

Дополнительная информация о том, что происходит при присваивании объектным переменным значения Nothing, приведена в разделе «Сборка мусора и завершение».



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