объектов? Я попытался использовать Array.Copy(), но в результате второй массив просто ссылается на первый и при изменении первого массива сразу изменяется второй. А мне нужно просто скопировать поля объектов не создавая при этом ссылки с массива на массив
Согласен, плохо с этим разобрался. Поэтому и спрашиваю, с помощью чего правильно копировать массив объектов без создания ссылок?
тебе нужно скопировать весь массив и сами объекты?
Это слишком сложно для меня. Сейчас я это делаю с помощью for-цикла. Просто копирую нужные int поля из одного объекта в другой. Но я думал, что есть более простой и быстрый способ это сделать
Мне это нужно именно каждый кадр
тогда перенести то что ты сейчас делаешь в цикле (копирование значений полей) в ICloneable и всё
[System.Serializable] public class Item { public int a; public Item DeepCopy() { Item po = new Item (); po.activityName = this.activityName; po.icon = this.icon; po.Productivity = this.Productivity; po.Social = this.Social; po.Health = this.Health; po.Fun = this.Fun; po.dateButtonAdded = this.dateButtonAdded; po.timeAdded = this.timeAdded; return po; } }
А разве так можно делать? Они не будут разве просто ссылаться один на другой? И хранить одни и те же объекты? Я просто начинающий, не очень хорошо ориентируюсь в этом
2 массива у тебя изначально должно быть, а потом ты просто меняешь их. В переменной А был один массив, в Б другой. Стало наоборот. Потом снова наоборот. И много раз так. Вот и вся суть.
Что я тебе сказал? Прочитать про value и reference типы
Обсуждают сегодня