при каких обстоятельствах я должен использовать модуль и класс

#vb6

#vb6

Вопрос:

когда я должен использовать модуль, а когда класс?

когда модуль и класс загружаются в память?

Могу ли я выгрузить уже загруженный модуль и класс?

Комментарии:

1. Что означает второе предложение?

2. @MarkBertenshaw: вопрос отредактирован..

Ответ №1:

Статический (BAS) модуль загружается и остается резидентным на время выполнения. Модуль класса (CLS) обеспечивает более динамическое распределение как кода, так и данных.

Классы также обеспечивают лучшую инкапсуляцию, могут создавать несколько экземпляров, могут сохраняться и имеют много других преимуществ по сравнению со статическим распределением.

В руководстве есть целый раздел под названием «Программирование с использованием объектов», который вы, возможно, захотите прочитать и изучить. Все допустимые версии VB6 выше учебной версии должны содержать этот материал и многое другое на компакт-дисках MSDN, которые поставляются с ними. Печатные книги также все еще можно найти из некоторых новых и использованных источников.

Комментарии:

1. 1 «Программирование с объектами» также доступно бесплатно онлайн! msdn.microsoft.com/en-us/library/aa716290 (v = VS.60).aspx Я взял на себя смелость отредактировать эту ссылку в вашем ответе

2. Спасибо. Но я также думаю, что людям нужно больше поддержки для установки своих компакт-дисков MSDN, чтобы получить справку F1, чтобы избежать публикации тривиальных вопросов. Потратить некоторое время на чтение документов также может быть чрезвычайно полезным, и MSDN с каждым днем становится все более неуклюжим.

Ответ №2:

Для каждого модуля BAS все переменные уровня модуля выделяются при запуске приложения. Вы не можете освободить эти переменные (хотя вы можете установить ссылки на объекты в Ничто, фактическая переменная все равно будет существовать).

Переменные уровня модуля модуля CLS выделяются только при создании экземпляра класса. Вся память, выделенная для экземпляра класса, освобождается при уничтожении класса. Вы можете создать столько экземпляров модуля CLS, сколько захотите, и каждый из них имеет свой собственный частный набор переменных уровня модуля.

В модулях BAS область действия переменных, объявленных общедоступными, является глобальной для приложения. Однако в модулях CLS вы можете получить доступ к общедоступной переменной только в том случае, если у вас есть ссылка на экземпляр этого класса (за кулисами эта переменная становится общедоступной собственностью).).

В общем, все переменные и процедуры, к которым вы хотите получить доступ из любого модуля, должны быть помещены в модуль BAS.