из шилдта:
Написал код.
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 у массива в который копировали не будит изменений?)