Как вы делаете копию объекта - PullRequest
1 голос
/ 19 декабря 2008

У меня есть коллекция объектов под названием Закладки, которая состоит из коллекции Закладок. Эта коллекция закладок привязана к древовидному элементу управления.

Я могу вернуть нужные закладки, но мне нужна копия закладки, чтобы я мог работать с ней, а не менять оригинал.

Любые мысли.

Спасибо.

Ответы [ 4 ]

3 голосов
/ 19 декабря 2008

Создайте новый конструктор для вашего класса закладок, который принимает существующую закладку в качестве параметра.

В этом новом конструкторе скопируйте все значения свойств из существующей закладки в новую.

Этот метод известен как «Конструктор копирования».

В MSDN есть статья, в которой более подробно - см. Как написать конструктор копирования .

0 голосов
/ 19 декабря 2008

Некоторое время работал с VB, но c # предлагает метод clone ().

0 голосов
/ 19 декабря 2008

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

Возможно, вы захотите внедрить несколько одновременных указателей (закладок) в вашем случае.

0 голосов
/ 19 декабря 2008

Большинство классов коллекций в .Net предоставляют перегрузку конструктора, которая позволяет передавать в другую коллекцию, например

dim copyOfBookMars as New List(of BookMark)(myOriginalBookMarkList)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...