الفرق بين الملاكمة و Unboxing في C #

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 23 أبريل 2024
Anonim
#الملاكمة #boxing #healthAndSports                         الفرق بين الملاكمه والكيك بوكس🤔🥊
فيديو: #الملاكمة #boxing #healthAndSports الفرق بين الملاكمه والكيك بوكس🤔🥊

المحتوى


في C # ، يتم اشتقاق جميع أنواع القيم من كائن الفئة. لذلك ، يمكن أن يشير المتغير المرجعي للكائن type إلى أي نوع قيمة آخر. يقدم C # طريقتين للملاكمة و Unboxing ، والتي تربط نوع القيمة بنوع المرجع. يتمثل الاختلاف الأساسي بين Boxing و Unboxing في أن Boxing هي تحويل نوع القيمة إلى نوع كائن ، بينما يشير مصطلح Unboxing ، من ناحية أخرى ، إلى تحويل نوع الكائن إلى نوع القيمة. دعونا دراسة الاختلافات الأخرى بين الملاكمة و Unboxing.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةملاكمةالإخراج من العلبة
الأساسييشير نوع الكائن إلى نوع القيمة.عملية استرداد القيمة من الكائن المحاصر.
تخزينيتم نسخ القيمة المخزنة على المكدس إلى الكائن المخزن على ذاكرة كومة الذاكرة المؤقتة.يتم نسخ قيمة الكائنات المخزنة على ذاكرة الكومة إلى نوع القيمة المخزنة على المكدس.
تحويلاتتحويل ضمني.تحويل صريح.
مثالint n = 24 ؛
كائن ob = n ؛
int m = (int) ob ؛


تعريف الملاكمة

الملاكمة هي إجراء لتحويل نوع القيمة إلى نوع كائن. هنا ، يتم تخزين نوع القيمة على المكدس ، ويتم تخزين نوع الكائن في ذاكرة الكومة. هذا التحويل لنوع القيمة إلى نوع الكائن هو تحويل ضمني. يمكنك تعيين قيمة لكائن مباشرةً ، وسوف يتعامل C # مع التحويل الباقي. دعونا نفهم الملاكمة مع مثال.

كثافة العمليات = 24 ؛ كائن ob = i ؛ / / اكتب عدد الأعداد الصحيحة n في نوع الكائن ob. أو كائن ob1 = 21 ؛ // هنا أيضًا يشير نوع الكائن ob1 إلى نوع صحيح

في التعليمة البرمجية أعلاه ، يتم تخزين نوع عدد صحيح i الذي يحتوي على القيمة 24 على المكدس ويتم نسخه إلى نوع الكائن ob. يشير نوع الكائن الآن إلى قيمة عدد صحيح. الآن ، تحتوي "int i" أيضًا على القيمة 24 و "نوع الكائن ob" يحتوي أيضًا على القيمة 24 ، لكن كلا القيمتين مستقلتان عن بعضهما البعض ، أي إذا قمت بتغيير قيمة i ، فلن يعكس التغيير في قيمة أوب.

الملاكمة تستهلك ذاكرة إضافية مع الوقت الإضافي. السبب هو أن كائن جديد ، والذي يشير إلى نوع القيمة ، يجب تخصيص مساحة الذاكرة على كومة الذاكرة المؤقتة. بعد ذلك ، سيتم نقل قيمة نوع القيمة التي يتم تخزينها على المكدس للحصول على نوع الكائن ، على موقع ذاكرة الكومة.


تعريف Unboxing

عكس الملاكمة هو Unboxing. Unboxing هو تحويل لنوع الكائن إلى نوع القيمة. في Unboxing ، يتم نقل قيمة نوع الكائن المحاصر المخزن على الكومة إلى نوع القيمة المخزنة على المكدس. على عكس Boxing ، فإن Unboxing يجب أن يتم بشكل صريح. يتم تحديد نوع الكائن بشكل صريح لنوع القيمة ، ويجب أن يكون نوع القيمة هو نفسه القيمة التي يشير إليها نوع الكائن. دعنا نفهم مفهوم Unboxing مع مثال.

كثافة العمليات = 24 ؛ كائن ob = i ؛ / / اكتب عدد الأعداد الصحيحة n في نوع الكائن ob. int j = (int) ob ؛ / / قم بإلغاء تحديد قيمة عدد صحيح المخزنة في نوع الكائن ob إلى عدد صحيح y.

يتم استرداد القيمة المخزّنة في كائن ob بإلقائها على النوع نفسه الذي كان يشير إليه الكائن ، على سبيل المثال ، نوع صحيح "j".

يستهلك Unboxing أيضًا المزيد من الذاكرة والمزيد من الوقت. منذ ذلك الحين ، عندما يتعين إلغاء تحديد نوع الكائن ، يجب نقل قيمة نوع الكائن المخزن على الكومة إلى نوع القيمة الجديد المخزن على المكدس. سيكون نوع الكائن الذي تم استرداده متاحًا الآن لجمع البيانات المهملة.

  1. في الملاكمة ، يتم إنشاء كائن للإشارة كنوع قيمة. من ناحية أخرى ، تسمى عملية استرداد القيمة مرة أخرى من الكائن المحاصر "unboxing".
  2. يتم نسخ نوع القيمة المخزنة على مكدس إلى الكائن المخزن على ذاكرة كومة الذاكرة المؤقتة. من ناحية أخرى ، في unboxing ، يتم نسخ كائن مخزّن على ذاكرة كومة الذاكرة المؤقتة إلى نوع قيمة مخزنة على ذاكرة مكدس.
  3. الملاكمة عبارة عن تحويل ضمني ، بينما يعتبر unboxing تحويلًا صريحًا.

خاتمة:

كل من الملاكمة و unboxing تستهلك المزيد من الوقت والذاكرة ، وأنها مكلفة حسابيا. كما أنها تفتقر إلى سلامة النوع وتزيد من وقت التشغيل. يُنصح دائمًا بتجنب استخدام الكثير من الملاكمة وإلغاء الملاكمة في البرنامج.