Загрузка страницы..
Массивы в C#, сравнение с Pascal
<span style="color: #28A84C">C#</span> vs Pascal
2014-04-15T13:04 15 апр. 2014 13:04
Просмотров: 2295

Простой код создания массива в Pascal:

var a,b: array[1..3] of integer;
i:integer;
begin
for i:=1 to 3 do
a[i]:=i;
b:=a;
b[1]:=3;
writeln(a[1]);
writeln(b[1]);
end.

И тот же код только в C#

int[] a = { 1, 2, 3 };
int[] b = new int[3];
b = a;
b[0] = 3;
foreach (int item in a)
    Console.Write(String.Format("{0,3}", item));
Console.WriteLine();
foreach (int item in b)
    Console.Write(String.Format("{0,3}", item));

Но в C# a[0] = 3, а вот в Pascal a[0]=1.

Почему же так?

В C# мы присвоили указатель a указателю b, соответственно два указателя ссылаются на один объект.
В итоге, чтобы скопировать объект в C# нужно писать так:

b = (int[])a.Clone();


Комментарии: 0

Коментарий пока нет, стань первым!

Добавить комментарий

Яндекс.Метрика Яндекс.Метрик