powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как создать копию объекта?
7 сообщений из 7, страница 1 из 1
Как создать копию объекта?
    #32346821
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!

Подскажите, пожалуйста, как в VB можно создать копию объекта? Не указатель на существ. Объект, а именно копию.

При конструкии вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim Obj1 = new Class1
Obj1.Field1=Value1
…
obj1.fieldN = ValueN

Dim Obj2 = Class1
Set Obj2 = New Class1
Set Obj2 = Obj1

Я получаю в Obj2 ссылу на Obj1 и при обращении
Код: plaintext
Obj2.Field1 = NewValue1

Меняется, естественно, Obj1.Field1.

Каким образом можно этого избежать? Если описание нужного мне механизма есть в MSDN, то ткните, пожалуйста, носом.

Заранее спасибо.
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32349433
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри New
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32349564
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну а конкретнее?
по New я создаю новый объект и дальше, как описано в моем первом посте. При этом в заново созданном объекте имею не независимую копию исходного, а ссылку на исходный объект. Т.е. при изменении свойств нового объекта меняются и свойства исходного тоже.

Создавать новый объект через New и потом вручную копировать все свойства - это как бы и так понятно, но хотелось бы чего-то поуниверсальнее.

Конструкции типа
Dim Obj1 = new Class1
Obj1.Field1=Value1


Dim Obj2 = Obj1
не поддерживаются (что, в общем-то, есть абсолютно логично и правильно).

или есть еще какой-то вариант с New ?
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32350336
Фотография DIKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если интересует Recordset то у него метод есть Clone. Другие объекты помоему не получиться скопировать
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32351295
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача копирования объекта - это задача самого объекта, ибо никто другой кроме самого объекта не может знать о нем всего.
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32351361
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Hibernate:
скорее всего, вы правы, просто надеялась найти в VB аналог метода Assign из Delphi, который как раз и занимается копированием всех общих свойств одного объекта в другой.
...
Рейтинг: 0 / 0
Как создать копию объекта?
    #32351631
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто копирования Public переменных может оказаться недостаточно, чтобы получить точную копию объекта: придется что-то делать с переменными-ссылками на другие объекты, которые могут быть совершенно неизвестной структуры и это может быть на неограниченную глубину вложенности...
Хотя, опять-же как выставить значения закрытых переменных вновь созданной копии?

По-моему утопия.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как создать копию объекта?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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