IsNull () защищает от ссылок на нулевые объекты? - PullRequest
1 голос
/ 27 августа 2009

В моем приложении PowerBuilder следующий сегмент кода вызывает ошибку R0002 во время выполнения (ссылка на нулевой объект):

Window w = windows[idx]
IF NOT IsNull( w ) THEN
    MessageBox( "", "ClassName is " + w.GetClassName() ) // This line crashes
END IF

Кто-нибудь знает, почему это так? У меня сложилось впечатление, что IsNull () специально предназначена для проверки на нулевые значения.

Ответы [ 2 ]

5 голосов
/ 27 августа 2009

Я думаю, что это разные типы NULL. Один - это переменная со значением NULL Другой - это объект, который не существует или не был создан.

Во втором случае вы можете использовать isValid ().

3 голосов
/ 28 августа 2009

Используйте IsValid(w), чтобы определить, создается ли переменная объекта - является ли ее значение допустимым дескриптором объекта.

...