Сообщение от MoKa
ЧИСЛА НЕ УКАЗАТЕЛИ!
Если ты засунешь туда объекты, то будут копии указателей на объекты, а объект останется одним и тем же.
ЧИСЛА - это простые данные, присваивание к ним данных, или присваивание чисел к числам - не операции с указателем, а операции с самими данными.
Засунь туда объект, и сделай снова свой эксперимент.
|
да я вкурсе что числа это данные. Ща проверю с объектами.
class lol
{
public int x { get; set; }
public lol(int p)
{ x = p; }
}
class TestClass
{
static void Main()
{
lol[] a = { new lol(1), new lol(2), new lol(3)};
object ob = a.Clone();
lol[] b = (lol[])ob;
b[0].x = 0;
foreach(var i in a) Console.Write(i.x);
Console.WriteLine();
foreach (var i in b) Console.Write(i.x);
Console.WriteLine();
}
}
012
012
Терь все понятно.=)
Массивы содержат в каждой ячейке какой то объект. Но Для массивов типов значений (int[] итд), Этот объект является значением. Он и копируется, но дальше никуда не ссылается.
А для массивов состоящих из элементов ссылочного типа. Копируется в объекте их адрес. И он ссылается уже на элементы. Которые и являются общими. А для типов значений эти элементы не могут быть общими потому что там вместо адреса само значение.
Наверное ты мне это и пытался объяснить с первого поста. xD