Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Копирование массива ссылочного типа


Автор: ura1234 7.5.2009, 16:48
Помогите решить проблему!
Есть массив pbarray ссылочного типа, необходимо скопировать элемент из этого массива и добавить её в этот же массив. При варианте pbarray[i] = pbarray[j] копируется только ссылка на объект, соответственно при изменении pbarray[i] меняется и pbarray[j]. Как копировать сами объекты?
Код C# 
Код

    public partial class Form1 : Form
    {
        public static MyPictureBox[] pbarray;  
        public Form1()
        {
            InitializeComponent();
            pbarray = new MyPictureBox[3];
            pbarray[0] = new MyPictureBox();
            pbarray[1] = new MyPictureBox();
            pbarray[2] = new MyPictureBox();
            pbarray[0].ID = 1;
            pbarray[1].ID = 2;
            pbarray[2].ID = 3;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            MyPictureBox[] pbarraycopy;
            pbarraycopy = (MyPictureBox[])pbarray.Clone();
            pbarraycopy[0].ID = 0;//после этой операции ID меняется в pbarray[0]
        }
    } 


 


Автор: DVariuS 7.5.2009, 17:42
Необходимо в классе MyPictureBox реализовать метод для глубокого клонирования экземпляров и копировать не массив целиком, а каждый элемент по-отдельности. Как реализовать глубокое клонирование можно найти http://www.google.com.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)