Здравствуйте! Проблема в следующем:
Есть класс А
Создал экземпляр А1 и присвоил значения структуре.
Далее создаю экземпляр А2 и присваиваю ему значение А1 (А2 = А1)
Если меняю содержимое А1, меняется и А2 и наоборот. А этого не должно происходить. Вопрос "Как присвоить А2 значение А1 и избежать данной проблемы"
Классы и присвоение в C#
-
- Сообщений: 31
- Зарегистрирован: 01 апр 2014, 21:00
Классы и присвоение в C#
Последний раз редактировалось alexandr.krupnov 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Классы и присвоение в C#
Листинг в студию.
Последний раз редактировалось A.I. 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
-
- Сообщений: 31
- Зарегистрирован: 01 апр 2014, 21:00
Классы и присвоение в C#
ConfTestParam copyParam = new ConfTestParam();
ConfTestResult copyResult = new ConfTestResult();
copyParam = confTests.Param[p];
copyResult = confTests.Result[p];
confTests.AddParam(copyParam);
confTests.AddResult(copyResult);
ConfTestResult copyResult = new ConfTestResult();
copyParam = confTests.Param[p];
copyResult = confTests.Result[p];
confTests.AddParam(copyParam);
confTests.AddResult(copyResult);
Последний раз редактировалось alexandr.krupnov 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
-
- Сообщений: 31
- Зарегистрирован: 01 апр 2014, 21:00
Классы и присвоение в C#
где confTests.Param[p] и confTests.Result[p] - экземпляры соответственно классов ConfTestParam и ConfTestResult с индексом p.
метод confTests.AddParam(copyParam) и confTests.AddResult(copyResult) добавляют соответственно copyParam и copyResult в массив. При этом размерность масивов увеличивается на 1.
метод confTests.AddParam(copyParam) и confTests.AddResult(copyResult) добавляют соответственно copyParam и copyResult в массив. При этом размерность масивов увеличивается на 1.
Последний раз редактировалось alexandr.krupnov 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Классы и присвоение в C#
https://msdn.microsoft.com/ru-ru/library/ms173116.aspxalexandr.krupnov писал(а):Source of the post Вопрос "Как присвоить А2 значение А1 и избежать данной проблемы"
Последний раз редактировалось 12d3 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
-
- Сообщений: 31
- Зарегистрирован: 01 апр 2014, 21:00
Классы и присвоение в C#
Как я понял, необходимо применить операцию глубокого копирования (c#)
Подскажите ссылку на доступный пример
Подскажите ссылку на доступный пример
Последний раз редактировалось alexandr.krupnov 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
-
- Сообщений: 31
- Зарегистрирован: 01 апр 2014, 21:00
Классы и присвоение в C#
Я понял, что необходимо написать конструктор копирования
Верно ли я написал?
public class Test
{
public Test
{
}
public Test(Test local) //конструктор копирования
{
x = local.x;
y = local.y;
}
int x;
int y;
}
Верно ли я написал?
public class Test
{
public Test
{
}
public Test(Test local) //конструктор копирования
{
x = local.x;
y = local.y;
}
int x;
int y;
}
Последний раз редактировалось alexandr.krupnov 27 ноя 2019, 19:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость