PDA

View Full Version : آیا می شود آرایه به صورت reference نباشد؟



smt1383
یک شنبه 01 خرداد 1390, 22:10 عصر
با سلام
فرض کنید یک کلاس داریم به نام Test که یک پراپرتی به نام Values دارد از نوع آرایه int و این آرایه مرتباً در حال تغییر است. حال می خواهیم در زمانهای خاصی مقدار این آرایه را بخوانیم. من بدین صورت عمل کردم (test یک نمونه از کلاس Test است):



int[] tempArray=test.Values;

اما مشکل این است که هر تغییری که در آرایه values ایجاد می شود در آرایه tempArray نیز ایجاد می شود. آیا می توان از این تغییر همزمان دو آرایه جلوگیری کرد؟

یوسف زالی
یک شنبه 01 خرداد 1390, 22:48 عصر
دوست من آرایه رو کپی کن:


int[] a = { 1, 2, 3 };
int[] b = new int[3];
a.CopyTo(b, 0);
a[1] = 5;
MessageBox.Show(b[1].ToString());


شما در حقیقت داری به آدرس آرایه اشاره می کنی.
یعنی اینکه هردو تا متغیر به یک جا اشاره می کنند.
اما با دستور CopyTo مقادیر رو در b با شروع از عنصر شماره صفر کپی می کنی.

a_sh57
دوشنبه 02 خرداد 1390, 08:35 صبح
gs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgdfdfgs dfgd