الفرق بين التخلص () والانتهاء () في C #

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 4 قد 2024
Anonim
الفرق بين 🔴 بطاقات الفيزا والماستر والكريدت كارد ؟
فيديو: الفرق بين 🔴 بطاقات الفيزا والماستر والكريدت كارد ؟

المحتوى


أساليب التخلص () والانتهاء () هي أساليب C # التي يتم استدعاء لتحرير الموارد غير المدارة التي يحتفظ بها كائن. يتم تعريف طريقة التخلص () داخل الواجهة IDisposable ، في حين يتم تعريف الطريقة النهائية () داخل كائن الفئة. الفرق الرئيسي بين التخلص () والانتهاء () هو أن هذه الطريقة تخلص() يجب التذرع به صراحة من قبل المستخدم ، في حين أن الطريقة وضع الصيغة النهائية () يتم استدعاء من قبل جامع البيانات المهملة ، قبل تدمير الكائن مباشرة. دعنا ندرس بعض الاختلافات الأخرى بينها بمساعدة مخطط المقارنة الموضح أدناه.

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

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

أساس للمقارنةتخلص( )وضع اللمسات الأخيرة ()
يعرفيتم تعريف طريقة التخلص () في واجهة IDisposable.الطريقة النهائية () المعرّفة المعرفة في فئة java.lang.object.
بناء الجملةالتخلص العام () {
// تخلص من الكود هنا
}
الفراغ المحمي وضع اللمسات الأخيرة () {
// رمز الانتهاء هنا
}
استدعى يتم استدعاء طريقة التخلص () من قبل المستخدم.يتم استدعاء الأسلوب finalize () بواسطة أداة تجميع مجمعي البيانات المهملة.
هدفيتم استخدام الأسلوب التخلص () لتحرير الموارد غير المدارة كلما تم استدعاء.يستخدم الأسلوب finalize () لتحرير الموارد غير المدارة قبل إتلاف الكائن.
التنفيذيتم تنفيذ الأسلوب التخلص () كلما كان هناك أسلوب إغلاق ().يتم وضع الصيغة النهائية للطريقة () على الموارد غير المدارة.
محدد الوصوليتم الإعلان عن طريقة التخلص () على أنها عامة.يتم الإعلان عن طريقة finalize () على أنها خاصة.
عمل طريقة التخلص () أسرع وتتخلص على الفور من كائن.طريقة وضع اللمسات الأخيرة أبطأ مقارنة بالتخلص
أداءتتصرف الطريقة () في تنفيذ الإجراء الفوري وبالتالي لا تؤثر على أداء مواقع الويب. طريقة وضع اللمسات الأخيرة () يجري أبطأ يؤثر على أداء المواقع.


تعريف التخلص ()

تحرير الأسلوب (التخلص) الموارد غير المدارة التي يحتفظ بها كائن من الفئة. الموارد غير المدارة هي الملفات ، اتصالات البيانات ، إلخ. يتم التصريح عن الطريقة () التخلص في الواجهة IDisposeable ويتم تنفيذه بواسطة الفئة عن طريق تطبيق واجهة IDisposable. لا يتم استدعاء هذه الطريقة تلقائيًا. يتعين على المبرمج تطبيقه يدويًا عند إنشاء فئة مخصصة ليتم استخدامها من قبل الآخرين. تحتوي الطريقة على بناء الجملة التالي:

public void dispos () {// Dispose code here}

في بناء الجملة أعلاه ، يمكنك ملاحظة أنه تم الإعلان عن الطريقة العامة. هذا لأنه تم تعريف هذه الطريقة في واجهة IDisposable وأنه يجب تنفيذها من قبل الفئة التي تنفذ هذه الواجهة. لذلك ، لتوفير إمكانية الوصول إلى الفئة المنفذة ، يتم الإعلان عن الطريقة على أنها عامة.

يتم استدعاء هذه الطريقة يدويًا بواسطة رمز البرنامج حيث يتم تطبيقه للاستدعاء. أداء الطرق سريع ، ويقوم على الفور بتحرير الموارد التي يحتفظ بها كائن فئة.

تعريف الانتهاء ()

يتم تعريف طريقة finalize () في موضوع صف دراسي. يتم استخدامه لأنشطة التنظيف. يتم استدعاء هذه الطريقة بواسطة أداة تجميع مجمعي البيانات المهملة عندما لا يتم استخدام مرجع كائن لفترة طويلة. يحرر مجمِّع البيانات المهملة الموارد المُدارة تلقائيًا ، ولكن إذا كنت تريد تحرير الموارد غير المُدارة مثل مقبض الملف ، واتصال البيانات ، وما إلى ذلك ، فيجب تطبيق طريقة الاستكمال النهائي يدويًا. جامع البيانات المهملة استدعاء الأسلوب وضع اللمسات الأخيرة () قبل أن يدمر الكائن بالكامل.


بناء جملة الأسلوب وضع اللمسات الأخيرة ():

الفراغ المحمي finalize () {// finalization code here}

في بناء الجملة أعلاه ، يتم تعريف الأسلوب finalize () على أنه محمي. السبب وراء ذلك ، يجب ألا تكون الطريقة النهائية () قابلة للوصول من خارج الفصل ، ويجب أن تكون قابلة للوصول فقط من قبل جامع البيانات المهملة.

تؤثر طريقة finalize () على تكلفة الأداء لأنه لا يحرر الذاكرة على الفور. في C # ، يتم استدعاء طريقة الإنهاء تلقائيًا مع المدمرات.

  1. يتم تعريف طريقة التخلص () في الواجهة IDisposable. من ناحية أخرى ، يتم تعريف الطريقة النهائية () في الفصل موضوع.
  2. يجب استدعاء الأسلوب التخلص () يدويًا داخل الكود بواسطة مبرمج ، بينما يتم استدعاء الطريقة النهائية من قِبل أداة تجميع البيانات المهملة تلقائيًا قبل أن يدمر الكائن.
  3. يمكن استدعاء الطريقة التي يتم التخلص منها في أي وقت ، في حين يتم استدعاء الطريقة النهائية من قبل جامع البيانات المهملة عندما يجد أن هذا الكائن لم يتم الرجوع إليه لفترة طويلة.
  4. يتم تطبيق الأسلوب التخلص () في فئة بعد تطبيق واجهة IDisposable. الطريقة النهائية () يجب أن تنفذ فقط من أجل الموارد غير المدارة لأن الموارد المدارة يتم تحريرها تلقائيًا بواسطة أداة تجميع مجمعي البيانات المهملة.
  5. يكون محدد الوصول للطريقة التخلص () عامًا كما هو معرف في الواجهة IDisposable وسيتم تنفيذه بواسطة الفئة التي تنفذ هذه الواجهة وبالتالي ، يجب أن تكون عامة. من ناحية أخرى ، تحتوي الطريقة النهائية () على محدد وصول محمي بحيث لا يجب أن يكون متاحًا لأي عضو خارج الفصل.
  6. طريقة التخلص () سريعة وتحرر الكائن فورًا وبالتالي ، لا يؤثر على تكلفة الأداء. طريقة وضع اللمسات الأخيرة () أبطأ ولا تحرر الموارد التي يحتفظ بها الكائن على الفور.

خاتمة:

يُقترح استخدام طريقة التخلص () على الطريقة النهائية () لأنها أسرع من النهاية. أيضا ، يمكن أن يطلق عليه في أي وقت ، عند الحاجة.