Как создать новый объект в Visual basic 6.0? Имеется код:Public Sub Tick()
...
For Each Link In NLinks
Dim NextP As New NPackets
...
Проблема в том, что по задумке Dim NextPacket As New NetworkPackets создает новый экземпляр класса N (но это конечно же не так), далее меняются его свойства и он добавляется в коллекцию (ссылкой на этот самый объект), затем при следующей итерации уже новый объект создается и добавляется в коллекцию (фактически при следующей итерации в foreach код обращается к тому же объекту, который уже ранее помещен в коллекцию).
dim не является оператором, новый объект не будет создан всякий раз, когда начнется следующая итерация цикла внутри кода этого метода.
Как можно создавать объекты без использования отдельного метода для создания объекта?

21 Авг 2019 в 07:04
274 +1
0
Ответы
1

В Visual Basic 6.0, при использовании ключевого слова Dim для объявления переменной класса, создаётся только ссылка на объект класса, но не сам объект. Чтобы создать новый объект класса при каждой итерации цикла, можно воспользоваться ключевым словом Set, которое создаёт новый экземпляр объекта класса.

Пример кода:

Public Sub Tick()
'...
Dim NextP As NPackets
For Each Link In NLinks
Set NextP = New NPackets
'...
'Пример использования объекта
NextP.Property = Value
'Добавление объекта в коллекцию
NCollection.Add NextP
Next
End Sub

Таким образом, при каждой итерации цикла будет создаваться новый объект класса NPackets, который можно использовать и добавлять в коллекцию.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир