سلسلة idisposable
-
20-09-2019 - |
سؤال
إذا قمت بتطبيق كائن باستخدام idisposable ، فهل يجب على جميع الكائنات التي تمتلك هذا الكائن تنفيذها أيضًا ، حتى لو لم يكن لديهم موارد أخرى لإصدارها؟
المحلول
نعم. تحتاج إلى التخلص منها ، من أجل الحصول على متغيرات العضو الخاصة بك بشكل صحيح.
في أي وقت تقوم فيه بتغليف فئة قابلة للتطبيق ، يجب أن تجعل الفصل الخاص بك قابلاً للتطبيق. في طريقة التصرف الخاصة بك ، يجب عليك التخلص من مواردك المغلفة. في الأساس ، تعاملهم بنفس الطريقة التي تعامل بها مورد أصلي.
نصائح أخرى
إذا كنت تريد التخلص الحتمي ، في النهاية يحتاج بعض العميل إلى استدعاء أو لف المكالمات في كتلة "استخدام". للتخلي عن كائنك ، قد يتطلب ذلك أن يقوم المالك بتطبيق Idisposable أيضًا.
يجب ألا تعتمد على جامع القمامة لتحرير أي موارد تعتمد على الوقت.
نعم ، يجب أن تنفذ فئة مملوكة قابلة للتطبيق ولكن لا تحتاج (لا ينبغي أن يكون لها) نماذج نهائية (Destructor).
NOP ، يحتاجون فقط إلى استخدام هذه الفئة ببيان "استخدام" للتأكد