|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Всем привет. Некоторое время пользуюсь вот такой конструкцией без явного создания объекта через оператор with Код: vbnet 1. 2. 3. 4. 5. 6. 7.
По идее, с оператором With объект создаётся, а уничтожается должен в конце блока оператором End With.... Вопрос, а нужно ли его ещё закрывать перед этим командой Код: vbnet 1.
кто знает ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 17:22 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron Некоторое время пользуюсь вот такой конструкцией без явного создания объекта через оператор with melihron а нужно ли его ещё закрывать перед этим командой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 17:49 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Панург melihron Некоторое время пользуюсь вот такой конструкцией без явного создания объекта через оператор with а где здесь явное создание объекта типа Код: vbnet 1. 2.
? В Си Шарпе по крайней мере так - неявное создание - закрытие и освобождение памяти автоматом в конце блока Панург melihron а нужно ли его ещё закрывать перед этим командой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 17:59 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
... ИМХО, не стоит тащить идеологию одного ЯП в монастырь другого... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 19:32 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron По идее, с оператором With объект создаётся, а уничтожается должен в конце блока оператором End With.... melihron нужно ли его ещё закрывать перед этим командой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 20:46 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron В Си Шарпе по крайней мере так - неявное создание - закрытие и освобождение памяти автоматом в конце блока ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 20:50 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Akina, м? о чём вы ? в шарпе я имею ввиду конструкцию using... например: Код: c# 1. 2. 3. 4.
неявно создаётся переменная cmd класса SqlCommand, выполняется инструкция в фигурных скобках и .... и собственно всё... переменная уничтожается.... очень удобно... сорри за офтоп на другом языке ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 00:01 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron неявно создаётся переменная cmd класса SqlCommand В VBA у переменных тоже есть области видимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 04:43 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron неявно создаётся переменная cmd класса SqlCommand, выполняется инструкция в фигурных скобках и .... и собственно всё... переменная уничтожается.... очень удобно... Во-первых, явно - у неё даже имя есть (в отличие от VB-кода - вот там как раз неявно, и имени нет). Во-вторых, уничтожение переменной не означает разрушения объекта. Я не зря упомянул именно эксель - его хост-процесс выгружается? точно? проверьте... особенно случай, когда две копии программы параллельно и одновременно формируют себе хост-процесс показанным методом - их загружается один или два? и потом правильно ли выполняется, если вообще выполняется, выгрузка? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 07:20 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
А вот в такой конструкции Close нужен ? Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 18:20 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron, опасения, что надо пользоваЦЦа явным Close, проистекают из (старых) грехов (старого) DAO. Вот тема для курения, всё, что нужно, там, ИМХО, сказали. Читать до конца. Совсем до конца (он может показаЦЦа несколько неожиданным). Если есть желание разобраЦЦа, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 02:01 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron Всем привет. Некоторое время пользуюсь вот такой конструкцией без явного создания объекта через оператор with Код: vbnet 1. 2. 3. 4. 5. 6. 7.
По идее, с оператором With объект создаётся, а уничтожается должен в конце блока оператором End With.... Вопрос, а нужно ли его ещё закрывать перед этим командой Код: vbnet 1.
кто знает ? Проверь адрес ячейки памяти, зарезервированный под обьектную переменную твою внутри блока with и вне блока with и получишь ответ, что гадать то) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:43 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов Проверь адрес ячейки памяти, зарезервированный под обьектную переменную твою внутри блока with и вне блока with и получишь ответ, что гадать то) Покажите пожалуйста как? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 15:33 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
ROI, В VBA есть несколько функций, которые очень редко используют при работе в VBA. На наших русскоязычных форумах имею в виду . Вот они: VarPtr - возвращает адрес переменной VarPtrArray - возвращает адрес массива VarPtrStringArray - возвращает адрес строки массива StrPtr - возвращает адрес строкового буфера UNICODE ObjPtr - возвращает указатель на интерфейс, на который ссылается переменная объекта Давайте на примере рекордсета сразу и покажу: Код: vbnet 1. 2. 3. 4. 5. 6.
Если по примеру выше: -когда рекордсет открыт - выводится адрес (число) -когда рекордсет закрыт (rs.close)- выводится этот же адрес (число) - рекордсет закрыт, но еще занимает память -И только когда мы уничтожаем его Код: vbnet 1.
MsgBox выводит 0 Функции достаточно интересные, недокументированные, на нашем форуме их не видал. Берите на здоровье) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 19:46 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов, Ишь тыыыы... спасибо, добрый человек... будем посмотреть... я думал на VBA подобных инструкций нету... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 22:44 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов, Спасибо но довольно всё не однозначно! https://www.sql.ru/forum/799937-2/obyasnite-raznicu-mezhdu-me-form-recordsource-i-me-recordsource ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 05:53 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов VarPtrStringArray - возвращает адрес строки массива ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 06:31 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов VarPtrStringArray - возвращает адрес строки массива ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 06:32 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов Давайте на примере рекордсета сразу и покажу: ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 06:35 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Панург, Что хочешь, то и пихай) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 09:56 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов, ээмм... а чё-то я не пойму, с какого боку прикрутить ObjPtr - возвращает указатель на интерфейс, на который ссылается переменная объекта если переменной то нету... Если объектная переменная есть, то Есть, чего проверять.... а когда её нету ? Код: vbnet 1. 2. 3. 4.
Допустим мы получили адрес возвращаемых полей внутри блока With.... а чего потом с ними делать вне блока With ? ..... переменных то нету.... : ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 10:37 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Сергей Лалов Что хочешь, то и пихай) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 10:40 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
melihron, Ты не можешь в блоке with в таком контексте обратиться к самому объекту. Только к его свойствам к сожалению. Я не смог, именно с этим экземпляром не прокатывает. Панург, Остаётся поверить майкрософту на слово, что внутри блока with происходит уничтожение ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 11:00 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
хотя.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 11:09 |
|
Оператор with. Нужно ли в нём закрывать созданный в нём объект?
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6.
Вот здесь после присвоения, область видимости рекордсета простирается и за пределы блока With. И он жив. Но это потому что я объявил его в самом теле With. Хитрый вопрос. Если убрать Set , то тоже жив. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 11:15 |
|
|
start [/forum/topic.php?fid=45&msg=39971181&tid=1610040]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
11ms |
check topic access: |
11ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 5ms |
total: | 262ms |
0 / 0 |