Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
1

Почему изменяется значение?

07.01.2018, 19:39. Показов 1228. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Есть класс Cell, в котором есть List с именем Genome. Мне надо изменить случайный элемент Cell2, но вместе с ним меняется и геном Cell. Почему?
C#
1
2
3
4
5
Cell2.Genome = Cell.Genome;
if (Rnd.Next(101) <= MutationPower)
{
    Cell2.Genome[Rnd.Next(Cell2.Genome.Count)] = Rnd.Next(MaxGenNumber + 1);
}
Заранее спасибо за помощь!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2018, 19:39
Ответы с готовыми решениями:

Почему изменяется значение переменной?
Помогите новичку. Я пишу простейший код, но в строках 34-38 происходит что-то странное. Переменная...

Почему значение переменной Result не изменяется?
Подскажите почему значение переменной Result не изменяется (возвращается 0). static int...

Почему изменяется массив строк?
Имеются два массива строк (глобальные переменные) string inEng_File и string inUkr_File. В первый...

Почему не изменяется текст консоли
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

8
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
07.01.2018, 19:41 2
C#
1
Cell2.Genome = Cell.Genome;
что по-твоему происходит в этой строчке?
0
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
07.01.2018, 19:45  [ТС] 3
LeniumSoft, геном клетки 2 становится равным геному 1ой клетки. Я что то не знаю?

Добавлено через 28 секунд
Мне надо изменить только геном клетки 2
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
07.01.2018, 19:49 4
почитай про ссылочные типы в шарпе
1
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
07.01.2018, 19:52 5
Лучший ответ Сообщение было отмечено Jesterru как решение

Решение

Цитата Сообщение от Jesterru Посмотреть сообщение
геном клетки 2 становится равным геному 1ой клетки. Я что то не знаю?
Нет. Свойству Cell2.Genome присваивается ссылка на лист Cell.Genome.
В итоге оба свойства(в разных объектах) начинают указывать на один лист. Изменяются значения в нём. И соответственно меняются в обоих объектах.

Добавлено через 2 минуты
C#
1
Cell2.Genome = Cell.Genome.ToList();
Создаст новый лист. Это решит твой трабл.

Только добавь сверху
C#
1
using System.Linq;
если его нет!
1
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
07.01.2018, 19:58  [ТС] 6
LeniumSoft, А это "преобразование" на сколько ресурсоёмко? Мне желательно не тратить вычислительные мощности на лишние вещи )
0
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
07.01.2018, 20:26 7
Jesterru, нуу. Либо создать новый лист, либо очистить старый и скопировать в него все элементы из другого листа.
Короче хрен один)))
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,341
Записей в блоге: 1
07.01.2018, 22:35 8
Цитата Сообщение от Jesterru Посмотреть сообщение
А это "преобразование" на сколько ресурсоёмко? Мне желательно не тратить вычислительные мощности на лишние вещи
Зависит от размера списка и от того насколько часто это будет делаться. Единственный способ это точно замерить - с помощью профилировщика.
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
08.01.2018, 01:17 9
Jesterru, тут сложно однозначно утверждать; тот вариант, который ты реализуешь,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Зависит от размера списка и от того насколько часто это будет делаться.
тут возможны другие пути решения задачи, но мы не знаем задачи...
0
08.01.2018, 01:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2018, 01:17
Помогаю со студенческими работами здесь

Связанные списки. Почему изменяется и tail и head?
Добрый вечер! Есть код, который генерирует связанный список: using System.Collections; using...

Значение аргумента x изменяется от a до b с шагом h
Здравствуйте, нужна помощь с задачкой. Я ее почти решил, но что-то сделал неправильно. Хелп плиз....

Почему когда изменяется значение ячейки DataGridView, то не вызывается обработчик события CellValueChanged?
Всё предельно просто. Скропаем таблицу dataGridView1 из двух столбцов. Первый стоблбец пусть будет...

Почему не изменяется тип курсора?
написал калькулятор, но во время тестирования заметил, что над textbox появляется ожидающий курсор...

Изменяется значение переменной
Привет, не понятно почему меняется значение переменной Theme.ID, в первой форме принимает значение...

Не изменяется значение в DataGridView
Имею следующий код, label1 просто для проверки того что, значение выбирается. Дак вот данные в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru