PDA

View Full Version : آرایه جدید به همان نام



HAIdle
دوشنبه 22 مرداد 1386, 15:53 عصر
سلام به همه دوستان
من در سی شارپ یک کلاس ساختم و یه آرایه از آن به شکل زیر ایجاد کردم:


myClass[] arr;
arr = new myClass[10];

در جای دیگر نیاز دارم که این آرایه که ایجاد کردم را از بین ببرم و یه آرایه دیگری به همین نام ولی با طول متفاوت(کمتر یا بیشتر) ایجاد کنم. فکر می کردم لازمه که اول آرایه قبلی را پاک کنم و بعد آرایه جید را ایجاد کنم. ولی وقتی چیزی شبیه کد بالا ولی با طول متفاوت نوشتم دیدم مشکلی ایجاد نشد. آیا وقتی کدی شبیه بالا بنویسیم خود سی شارپ آرایه قبلی را پاک می کند و آرایه جدید را در نظر می گیرد؟

MH2538
دوشنبه 22 مرداد 1386, 16:04 عصر
سلام
اواخر هفته پیش در مورد new کردن مجدد یک شی یک پست خوب در همین فاروم زده شد.
جستجو کن.مطلبی که کی خوای اونجا هست.

PC2st
دوشنبه 22 مرداد 1386, 20:24 عصر
آیا وقتی کدی شبیه بالا بنویسیم خود سی شارپ آرایه قبلی را پاک می کند و آرایه جدید را در نظر می گیرد؟
بله، اینگونه است.
اما اگر ارجاعهای دیگری به آن آرایه وجود داشته باشه، آن ارجاعها هنوز آرایه قبلی رو در خودشون حفظ کرده اند.
کد زیر رو امتحان کنید تا منظورم رو از ارجاعهای دیگر، متوجه بشید:


string[] hell = new string[3];
string[] well = hell;
hell = new string[2];
MessageBox.Show(well.Length.ToString());