2015-05-06 4 views
-1

Хорошо, я знаю, что Copy Ctor копирует данные объекта на другой объект. Но я до сих пор не совсем понимаю, что практическое использование Copy Ctor в режиме реального времени. Я не нашел удовлетворительных ответов, просто определения того, что это такое.Каково практическое использование конструктора «Копировать»?

+1

вы не пишете конструкторы копирования в C#. посмотрите на метод ICloneable.Clone –

+1

У C# нет конструкторов копирования, как это делает C++, поэтому я не уверен, что вы ожидаете в качестве ответа. Вы можете написать что-то похожее на конструктор копирования, но в этом нет ничего особенного. –

+2

@ ro-E Вы * можете * и, возможно, должны написать конструкторы копирования в C#. IClonable - не очень хорошее решение; см. главный ответ на вопрос, связанный с Робертом. – Blorgbeard

ответ

0

C# не имеет конструктора копирования. Класс System.Object имеет метод MemberwiseClone, который создает неглубокую копию для ссылочных типов.

В неглубокой копии поля типов значений копируются как есть. Для полей ссылочного типа адрес копируется во вновь созданном объекте.

Глубокая копия объекта создается, когда фактические объекты выделяются для типов опорных полей.

Пример глубокой копии можно найти по адресу: https://msdn.microsoft.com/en-us/library/ms173116.aspx

Смежные вопросы