[COLOR="#800000"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
صدق الله العلي العظيم[/COLOR]
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
صدق الله العلي العظيم[/COLOR]
السلام عليكم ورحمة الله وبركاته
سنتعلم اليوم عملية الBoxing والUnboxing في لغة السي شارب
[COLOR="#A52A2A"]من المعلوم ان هنالك ثلاثة انواع(C# Types) في لغة السي شارب وهي: الValue Type, Reference Type and Pointer Type ,ولغة السي شارب تسمح لنا بالتحويل بين هذه الانواع (من و إلى) من الValue Type إلى الReference Type والعكس.
فالBoxing: عملية تحويل من الValue Type إلى الReference Type.
والUnboxing: عملية تحويل من الReference Type الى الValue Type.[/COLOR]
لنبين هذه المفاهيم بالأمثلة:
اولا: Boxing
PHP كود :
int value = 6; // This is a Value Type
Object ob; // This is a Reference Type
ob = value; //Boxing (Converting Value Type to Reference Type)
[COLOR="#A52A2A"]في السطر الاول عرفنا متغير من نوع int وهي (Value Type)
وفي السطر الثاني عرفنا Instance من نوع object وهي (Reference Type)
وفي السطر الثالث عملنا Boxing للint الى الobject ,أي عملية تحويل من value Type الى Reference Type.[/COLOR]
ثانيا: Unboxing
PHP كود :
int value = 5; // This is a Value Type
Object ob; // This is a Reference Type
ob = value; //Boxing (Converting Value Type to Reference Type)
int i = (int)ob; //Unboxing (Converting Reference Type to Value Type)
في السطر الرابع عملية استخلاص القيمة من الReference Type وخزنها في الValue Type.[/COLOR]
يجب الملاحظة في انه يجب علينا استخدام الCasting للنوع الذي نريد التحويل اليه (أي نوع الValueType) في عملية الUnboxing
اتمنى انكم استفدتم من هذا الموضوع ولا تنسوني و والدي من خالص دعواتكم.