|
1 / 1 / 0
Регистрация: 28.09.2007
Сообщений: 285
|
|
Зачем объектной переменной Nothing10.10.2007, 14:34. Показов 5981. Ответов 3
Метки нет (Все метки)
Зачем использовать уничтожение ресурсов объектной переменной с помощью присвоения ей Nothing , если и так по истечении времени ее жизни ( в конце процедуры или работы приложения) они автоматом освобождаются, ведь для остальных переменных перед выходом из функции мы ничего специально не предпринимаем?
Или, - все таки не освобождаются ресурсы при окончании жизни объектной переменной, например, какие-нибудь кэши у Database ... ?
0
|
|
| 10.10.2007, 14:34 | |
|
Ответы с готовыми решениями:
3
Узнать свойства и методы объекта в объектной переменной
|
|
2 / 2 / 1
Регистрация: 07.05.2007
Сообщений: 126
|
||||||
| 10.10.2007, 16:07 | ||||||
|
Значение Nothing импользуется в объектных пеерменных и указывает на то что объектная переменная не инициализирована.
Используется в том случае если необходимо разьеденить о.пер и обьект. ПР:
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.08.2007
Сообщений: 539
|
|
| 10.10.2007, 18:01 | |
|
Ты прав насчет времени жизни. Они все равно все потом сдохнут, когда твою программу закроют
Это просто такой стиль написания программы. Ты явно указываешь другому, кто читает твой код (это может быть и не человек вовсе), что эта переменная освобожена. Ведь объектная переменная - это всего лишь адрес объекта. Если на него никто больше не указывает, что ему делать в памяти? Вот его сборщики мусора и уничтожают. Им за это зарплату платят, а не тебе А теперь представь, что кто-то сделал Recordset на 2М и на него указал в глобальной переменной (плохой стиль). Работу с этим Recordset'ом давно закончил и о глобальной переменной забыл. Вот и висит этот объект в памяти, тормоз ставит.Насчет кэшей ничего не скажу. JET шуршит незаметно, его целая банда оптимизировала. Удачи.
0
|
|
|
1 / 1 / 0
Регистрация: 28.09.2007
Сообщений: 285
|
|
| 10.10.2007, 19:38 [ТС] | |
|
Итак,если можно, функции у Nothing получается две:
1) Пометка некоторой объектной переменной (как ссылки на объект), что она более не занята и это каким-то образом м.б. использовано в программе.Честно говоря, я об этом как-то подзабыл, да и волновало второе. 2) Освобождение ресурсов,занимаемым объектом путем насильственного (не дожидаясь умирания ссылок на него) его уничтожения присвоением последней ссылке на него Nothing (ну, предполагается, мы отследили,что все др. ссылки на него уже убиты). Вот здесь смысл Nothing для меня ускользает. Ведь, если я хочу сам без VB заботиться о свободе памяти, то нужно понимать , что это в даной точке актуально, т.е., а нужно ли в данной точке проги мне освобождать память , но тогда как (с помощью каких критериев) оценить эту необходимость - неясно! Так нельзя ли просто не заботиться об этом (не испещряя все свои функции в программе Set ObjVar=Nothing ) а предоставить освобождение всех ресурсов самому VB, пусть возвращает память в кучу сам по мере умирания сответствующих объектных переменных. Потому, что при ином подходе необходимо всю программу , в каждой функции перепрошить упомянутыми Set ObjVar=Nothing , это утомляет , да и забивает предметный смысл кода. И еще. Вопрос - то, вообще говоря, был вызван моей неуверенностью (Help попутал , в нем везде в примерах при окончании работы с объектом стоит Set ObjVar=Nothing), возвратит ли VB память из-под объекта в кучу после выхода из процедуры и соответственнно, умирания локальной ссылки на него (считается, что cсылка одна была) - а как это проверить (посмотреть свободный объем кучи) , я кстати - не знаю, Если , кто знает - подскажите !
0
|
|
| 10.10.2007, 19:38 | |
|
Помогаю со студенческими работами здесь
4
Как использовать методы подкласса из объектной переменной суперкласса Зачем переменной задавать значение при объявлении?
Зачем нужно явно указывать тип переменной?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|