تا %60 تخفیف خرید برای 3 نفر با صدور مدرک فقط تا
00 00 00

برنامه نویسی شی گرا در سی شارپ (#C) قسمت 16 : Boxing و Unboxing

سلام به همه ITPRO ای های عزیز، با قسمت بیست و ششم از سری آموزشی برنامه نویسی به زبان سی شارپ در خدمت شما دوستان عزیز هستیم. همانطور که در قسمت قبلی گفتیم، در این قسمت قصد داریم تا با مفاهیم Boxing و Unboxing آشنا شویم که مربوط به بحث تبدیل نوع ها به یکدیگر می شود.

Boxing

همانطور که در قسمت های قبلی گفتیم، سی شارپ یک زبان سئ گرا است، یعنی ما می توانیم بوسیله کلاس ها شئ های مورد نظر خود را ایجاد کنیم. بوسیله کلاس ها نوع های داده ارجاعی یا Reference Type ایجاد می شوند. همینطور با struct ها که وظیفه ایجاد Value Type ها را دارند آشنا شدیم. اما کلیه این نوع های داده از نوع داده object ارث بری می کنند، یعنی فرزند نوع داده object هستند که به صورت پیش فرض در کتابخانه دات نت تعریف شده اند. اگر توضیحی بخواهیم برای عملیات Boxing ارائه دهیم، عملیات تبدیل یک Value Type به نوع داده object را boxing می گویند. مثال:

int number = 12;
object boxed = number;

در کد بالا، ابتدا یک متغیر از نوع int تعریف کردیم و سپس این متغیر را در متغیر دیگری با نام boxed و از نوع object قرار دادیم. به این عملیات boxing گفته می شود. اگر بخواهیم نگاه ریز تری به این پروسه داشته باشیم، عملیات boxing مقدار یک value type که در حافظه stack دخیره شده را داخل یک object و در حافظه heap نگهداری می کند. عملیات boxing را می توان به صورت implicit که در بالا مثال زدیم یا explicit انجام داد:

int number = 12;
object boxed = (object)number;

Unboxing

عملیات Unboxing، دقیقاً عکس عملیات boxing است، یعنی ما یک متغیر از نوع object را به Value Type تبدیل کنیم:

object boxed = 12;
int unboxedNumber = (int)boxed;

در کد بالا، ابتدا عدد 12 داخل متغیر boxed از نوع object قرار گرفته و در خط بعدی عملیات unboxing انجام می شود، یعنی عدد 12 که از نوع int است و در متغیری از نوع object و در حافظه heap ذخیره شده، به صورت explicit تبدیل به نوع int شده و در متغیری از همین نوع قرار داده می شود. به این نکته دقت کنید که عملیات boxing و unboxing بر روی performance برنامه تاثیر می گذارد و بهتر است تا حد امکان از انجام این گونه تبدیل ها در برنامه خودداری کرد. در قسمت بعدی آموزش، با مبحث Generic آشنا خواهیم شد. ITPRO باشید

نویسنده : حسین احمدی
منبع : جزیره برنامه نویسی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
#آموزش_زبان_سی_شارپ #دوره_برنامه_نویسی #آموزش_برنامه_نویسی_شئ_گرا #boxing_و_unboxing_در_سی_شارپ #آموزش_برنامه_نویسی
عنوان
1 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 1 : مقدمه رایگان
2 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 2 : کلاس و شئ رایگان
3 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 3 : فیلد و متد رایگان
4 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 4 : Property ها رایگان
5 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 5: سازنده ها رایگان
6 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 6 : وراثت رایگان
7 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 7 : Polymorphism رایگان
8 آموزش برنامه نویسی شی گرا در (#C) قسمت 8 : abstract و sealed رایگان
9 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 9:سازنده در وراثت رایگان
10 برنامه نویسی شی گرا در سی شارپ (#C) قسمت 10: Exntesion Method ها رایگان
11 برنامه نویسی سی شارپ (#C) قسمت 11: Value Type و Reference Type رایگان
12 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 12 : Interface رایگان
13 آموزش برنامه نویسی شی گرا در (#C) قسمت 13: Dependency Injection رایگان
14 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 14 : تبدیل نوع رایگان
15 آموزش برنامه نویسی شی گرا (#C) قسمت 15 : Operator Overloading رایگان
16 برنامه نویسی شی گرا در سی شارپ (#C) قسمت 16 : Boxing و Unboxing رایگان
17 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 17 : Generics رایگان
18 آموزش برنامه نویسی شی گرا در (#C) قسمت 18 : List و Dictionary رایگان
19 آموزش برنامه نویسی شی گرا در سی شارپ (#C) قسمت 19 : مدیریت خطاها رایگان
20 درج انبوه رکوردها در SQL Server با سی شارپ (C# SQL Bulk Insert) رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر