|
-1 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 30
|
||||||
Копия структуры меняется при изменении оригинала18.07.2016, 15:59. Показов 3087. Ответов 23
Метки нет (Все метки)
Есть структура. Хочу сделать ее резервную копию, создаю структуру такого же типа и присваиваю ей значение первоночальной структуры. Далее провожу действие, которое меняет первоночальную структуру, однако, при проверке, обнаруживается, что "резервная" структура тоже меняется. Структура же не ссылочный тип, почему так происходит?
0
|
||||||
| 18.07.2016, 15:59 | |
|
Ответы с готовыми решениями:
23
Если объект копируется по ссылке, то почему копия сохраняется при обнулении оригинала? Полноценная копия сайта с отвязкой от зависимостей (от оригинала) При решении блоком Given/Find не меняется результат при изменении приближенных значений |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 18.07.2016, 15:59 | ||
|
Если у вас в первоначальной структуре есть поле ссылочного типа и вы изменяете свойство этого объекта, то изменения будут видны везде.
0
|
||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 18.07.2016, 16:14 | |
|
NikitaLitvinkov, покажи весь код, начина я объявления структуры
0
|
|
|
77 / 77 / 42
Регистрация: 30.09.2014
Сообщений: 342
|
|
| 18.07.2016, 16:15 | |
|
field это ваша структура?? на класс похоже больше...
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
||||||
| 19.07.2016, 00:00 | ||||||
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 19.07.2016, 02:06 | |
|
DataPlanner, если верить автору, то у него структура, так что Clone с такой реализацией — это равносильно обычному присваиванию.
С той разницей, что при обычном присваивании нет упаковки.
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
|||||||
| 19.07.2016, 03:02 | |||||||
0
|
|||||||
|
14138 / 9362 / 1350
Регистрация: 21.01.2016
Сообщений: 35,196
|
|
| 19.07.2016, 04:48 | |
|
DataPlanner, структура полностью копируется при простом присваивании (a = b), для этого подобных телодвижений (страшных) сотворять не нужно.
Ждём ответа ТС о содержимом структуры. Очень вероятно, что у него есть поле ссылочного типа. Добавлено через 2 минуты Либо вообще не структура используется
0
|
|
|
77 / 77 / 42
Регистрация: 30.09.2014
Сообщений: 342
|
|
| 19.07.2016, 08:56 | |
|
шел второй день ожидания кода структуры
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 19.07.2016, 10:06 | ||
|
Представленный товарищем DataPlanner код сериализации клонирует (почти) весь граф объектов.
0
|
||
|
14138 / 9362 / 1350
Регистрация: 21.01.2016
Сообщений: 35,196
|
|
| 19.07.2016, 10:26 | |
|
kolorotur, я это понимаю. Но это решение всё равно не очень элегантно
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 19.07.2016, 10:29 | ||
|
К сожалению, в дотнете отсутствуют готовые средства для элегантного глубокого клонирования
0
|
||
|
77 / 77 / 42
Регистрация: 30.09.2014
Сообщений: 342
|
|||||||||||
| 19.07.2016, 16:29 | |||||||||||
|
Ребят можете объяснить о чем вы гутарите, что-то я не уловил )
написал структуру
Две переменные ссылочного типа , и функцию на изменения их . в самой программе :
Собственно создал , сделал копию, поменял копию , вывел , получил => Структура st :5465 12345 Структура st2 :5465 12345 Структура st :5465 12345 Структура st2 :---- 00000
0
|
|||||||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||||||||||||
| 19.07.2016, 16:59 | ||||||||||||
Добавлено через 3 минуты А вот если мы заменим в структуре объект класса Foo на переменную int:
0
|
||||||||||||
|
|
||
| 19.07.2016, 17:07 | ||
|
0
|
||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 19.07.2016, 17:18 | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||
| 19.07.2016, 18:01 | ||||||||
Ссылку, не сам массив.
0
|
||||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|||||||
| 19.07.2016, 18:06 | |||||||
Добавлено через 1 минуту а, всё, дошло. Таки да, ссылку. Добавлено через 45 секунд я оператором new просто создавал новый массив. Туплю, пора домой.
0
|
|||||||
|
77 / 77 / 42
Регистрация: 30.09.2014
Сообщений: 342
|
|||||||||||
| 20.07.2016, 09:07 | |||||||||||
|
А понял... в моем примере все норм было потому что я массив новый делал....
А что за "прибабах" у стринга такой ?
0
|
|||||||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 20.07.2016, 09:44 | |
|
0
|
|
| 20.07.2016, 09:44 | |
|
Помогаю со студенческими работами здесь
20
DataViewRowState не меняется при изменении в DataGrid При изменении DataTable не меняется RowState Меняется стиль при изменении класса Не меняется дата при изменении времени При изменении одного ресурса, меняется второй. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|