powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Очистка объектных переменных
21 сообщений из 21, страница 1 из 1
Очистка объектных переменных
    #32217304
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не раз видел здесь рекомендации об очистке объектных переменных после использования

set objvar = nothing.

Вопрос: нужно ли делать аналогичную операцию после такого кода

for each objvar in collection
blablabla
next objvar

или в конце цикла она уже самоочиститься?
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217346
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не знаю ответа, но хочу подумать вслух. Речь о параметре цикла, верно? Вот другой пример с параметром цикла, но не с объектным:\r
\r
for i=1 to 10\r
blablabla\r
next\r
\r
В описаниях стандартов языков программирования когда-то специально оговаривалось: значение параметра цикла после выхода из цикла не определено, низя опираться но, что параметр по нашему предположению должен бы равняться тому-то. И действительно, в разных компиляторах по выходе из приведенного мной цикла i может быть равно или 10, или 11. Но не 0! То есть обнуления не происходит, параметр равен чему попало, как было удобно компилятору.\r
\r
С другой стороны, вот пример, как Лох объясняет мне, что во многих ситуациях, похожих на обсуждаемую, переменная должна бы обнуляться, но опираться на это все равно не строит.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217352
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Общепятка:

низя опираться на то...
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217417
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, беру за правило.
"И вечно буду тем любезен я народу..." :))
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217453
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for each objvar in collection
blablabla
next objvar


А где тут инициализация обьекта (эеземпляра класса)?
Это всего лишь обращение к существующему объекту.

Код: plaintext
1.
2.
3.
Dim rs As ADODB.Recordset
'пока ничего прибивать не надо - ничего и не родилось
Set rs = New ADODB.Recordset
'а вот тут первый вздох, уже нужно думать о смерти


Почувствуйте разницу
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217459
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Pavel

Позволю себе не согласиться.

for each objvar in collection
blablabla
next objvar

- это просто компактная запись для

set objvar = ...
blablabla
set objvar = ...
blablabla
set objvar = ...
blablabla
...

И неизвестно, входит ли сюда

set objvar = nothing

Другое дело, что тут вся торговля только вокруг стирания ссылки на объект, который сам действительно стираться не должен.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217468
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for each objvar in collection
Давайте на примере. А что за коллекция?
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217471
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Например, Forms. Но я ведь написал - я согласен, что дело только в высвобождении памяти, отводимой под ссылку, а не под сам объект.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217476
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другое дело, что тут вся торговля только вокруг стирания ссылки на объект
Совершенно верно :)

А где тут инициализация обьекта
dim ctrl as control

for each ctrl in me.controls
msgbox ctrl.name ' Здесь в ctrl уже живет ссылка на me.contrls(n)
next ctrl

А ВС, насколько я понял, сказал, что в конце этого цикла (кроме того, в зависимости от версии) в ctrl м.б. как ссылка на последний контрол формы, так и ничего (причем последнее еще не известно).
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217479
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, Forms.
Ну и где там не инициализированные обьеты?
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217484
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Geo:

Да, я именно это и хотел сказануть.

2 Pavel:

Так нету. Дело только в ссылках.

Хотя вообще-то можно себе представить:

for each objvar in array(new ..., new ...)
msgbox objvar.name
next

Но это уже тот случай, который был разобран в моей беседе с Лохом по ссылке выше.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217493
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылкой можно пренебречь. Пусть даже висит в памяти - винды умрут раньше, чем ссылкам удастся загадить память (они просто засвопуются).
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217494
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, я тыщу перевалил. Пойду выпью.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217515
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Павлу - тысячекратное УРА!

Код: plaintext
1.
2.
For i =  1  to  1000 
УРА!
Next
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217520
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще не ложусь, скоди, Саныч, в ПТ, и за твои 2K выпьем!
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217522
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч, глянул на твою фотку, возник вопрос - а как ты в комп компакт или дискетку пихаешь? Или в стене спецокно?
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217523
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что такое ПТ? Могу предположить: Петах-Тиква (город, где я работаю и откуда тлько что вернулся); Pass-Through... А на самом деле?
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217527
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Треп. Форум такой. на этом сайте. Активный.
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217528
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Про дискетку вопрос уже игранный. :^)\r
\r
/topic/36000&pg=2
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217529
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле Просто Треп
...
Рейтинг: 0 / 0
Очистка объектных переменных
    #32217587
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> ...вопрос уже обсуждался...
Какой чудесный день
Башка моя как пень
Какой веселый я -
- нажрался как свинья



Когда я этот топик читал, я до сюда не дошел. И дальше ничего не видел.
Хршо. // Пьет пиву по поводу устатку и рождения сына у друга (по поводу чего явно послезавтра придется и пиво ПИТ, и водку жрат... "//" - (с) Нуф и ся.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Очистка объектных переменных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]