Показать сообщение отдельно
Старый 19.05.2012, 01:10   #1
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Array.ConstrainedCopy

из шилдта:



Написал код.
            int[] a = { 1, 2, 3, 4, 5 };
            int[] b = { 6, 7, 8, 9, 0 };

            Array.ConstrainedCopy(a, 1, b, 2, 3);
            // a[2] = 0;
            foreach(var i in a) Console.Write(i);
            Console.WriteLine();
            foreach(var i in b) Console.Write(i);
            Console.WriteLine();
            Console.Read();
Выводит следующее:
12345
67234
Раскоментируем // a[2] = 0;, выводит следующее:
12045
67234
почему он не выводит ?
12045
67204
Ведь ссылочный тип одинаков у обоих массивов - int[]. И они должны ссылаться на одни и теже элементы после копирования.

И чем Array.ConstrainedCopy отличается от перегруженного Array.Copy с сигнатурой аналогичной сигнатуре метода ConstrainedCopy. (Только тем, что в случае неудачного копирования при использовании метода ConstrainedCopy у массива в который копировали не будит изменений?)
(Offline)
 
Ответить с цитированием