زمانی که در زبان سی شارپ متغیری مثلا از نوع int تعریف می کنیم این متغیر و مقدار آن به صورت مستقیم داخل حافظه ی Stack ذخیره می شوند و دسترسی ما به مقدار آن متغیر، به طور مستقیم از داخل حافظه Stack می باشد، اما زمانی که شئ ای از نوع یک کلاس ایجاد می کنیم، خانه ای برای آن متغیر در حافظه ی Stack ایجاد شده و شئ مربوط به آن متغیر در حافظه ی Heap ذخیره میشود، سپس در قسمت مربوط به متغیر در حافظه ی Stack ، آدرس شئ ایجاد شده در حافظه ی Heap ذخیره می شود. اصطلاحاً به مورد اول Value Type و به مورد دوم Reference Type می گویند.
برای یادگیری و آموزش سی شارپ ( آموزش برنامه نویسی سی شارپ ) حرفه ای به این لینک مراجعه کنید
اما شیوه دسترسی به متغیرهای Value Type و Reference Type چگونه است؟ زمانی که ما قصد دسترسی به متغیری از نوع Value Type را داریم، مقدار آن به صورت مستقیم از داخل حافظه ی Stack خوانده می شود، اما برای متغیرهای Reference Type، ابتدا به Stack رفته و پس از خواندن آدرس آن در Heap، به حافظه Heap مراجعه شده و شئ مربوط به آن خوانده می شود. با این تفاسیر، وقتی متغیری از نوع Reference Type (متغیر هایی که در Heap ذخیره می شوند ) را معادل متغیر دیگری قرار می دهیم، قسمت جدیدی برای آن در حافظه Stack ایجاد شده و آدرس متغیر قبلی را داخل آن قرار می دهد. این بدین معناست که اگر هر کدام از پارامترهای متغیرها تغییر کنند، متغیر دیگر هم تغییر می کند.
هر مقداری که داخل شئ ای از نوع Object قرار داده شود، در حقیقت تبدیل به Reference Type می شود. در زبان ساده Boxing و Unboxing به معنای تغییر نوع داده ی متغیر ها ی Value Types و Reference Types به همدیگر است. با یک مثال ساده بررسی می کنیم:
Boxing:
Int id = 1; Object Id = id;
Unboxing:
O = 123; Int I = int(O);
با این روش می توان متغیر هایی از نوع Value Type را از حافظه ی Stack به حافظه ی Heap منتقل کرد.استفاده از این روش ها باعث پایین آمدن کارایی یا Performance برنامه می شود، پس تا حد امکان از این کار پرهیز کنید.
یادگیری برنامه نویسی برای متخصصین حوزه کامپیوتر این روزها یک الزام به حساب می آید. از جمله محبوب ترین زبان های برنامه نویسی دنیا می توانیم به زبان برنامه نویسی سی شارپ ، زبان برنامه نویسی جاوا ، زبان برنامه نویسی پایتون ، زبان برنامه نویسی سی پلاس پلاس و زبان برنامه نویسی SQL ( لازمه هر زبان دیگری ) و زبان برنامه نویسی PHP اشاره کنیم.
برای آموزش برنامه نویسی می توانید با خیال راحت در قالب دوره های آموزش برنامه نویسی سایت توسینسو ، آموزش سی شارپ ، آموزش جاوا ، آموزش پایتون ، آموزش جنگو ، آموزش PHP ، آموزش جاوا اسکریپت ، آموزش برنامه نویسی اندروید ، آموزش SQL و آموزش MySQL را بصورت جامع و حرفه ای آموزش ببینید.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود