05-10-12, 01:20 AM
كاتب الموضوع : samerselo
- رجاء حار أريد أن يكون هذا الموضوع للنقاش العلمي حصريا يرجى عدم طرح مشاركات شكر أريد مشاركات نقاش حول هذا الموضوع فقط
- تحدثت سابقا عن هذه الواجهة في موضوعي إدارة المصادر والواجهة IDisposable وقد قمت بإضافة فقرة في نهايته تتضمن طريقة بسيطة لمعرفة الكود المدار Managed Code من الكود الغير مدار Unmanaged Code لذا أرجو قراءة الموضوع ثانية حتى لو قرأته سابقا اقرأ المشاركة التالية بشكل خاص إضافتي الجديدة البارحة للموضوع
- المصادر المدارة هي جميع المصادر التي تتم إدارتها من قبل بيئة زمن التشغيل أي أن بيئة زمن التشغيل تضمن تدميرها في وقت ما بعد الإنتهاء من استخدامها
- يمكننا القول أن المصادر الغير مدارة هي جميع المصادر التي لا تتم إدارتها من قبل بيئة زمن التشغيل مثل مقابض الملفات و أغراض Com و مقابس الشبكة أي أن بيئة زمن التشغيل لا تضمن تدميرها
وعملية التمييز بين الكود المدار والغير مدار هامة جدا عندما نقوم بكتابة تحقيقنا للواجهة IDisposable في فئتنا حتى نعرف كيف نكتب الوظيفة Dispose بشكل جيد
نحن عندما نضيف عند تعريف الفئة السطر التالي لإضافة تحقيق IDisposable لفئتنا يتم إضافة الإجراء المحمي Dispose الذي هو موضوعنا هنا
ويكون هيكل الإجراء Dispose الذي يضاف آليا من قبل بيئة التطوير هو
حيث نكتب كود تفريغ المصادر المدارة داخل حلقة If كما هو واضح من التعليقات ضمن الكود وكود المصادر الغير مدارة بعد حلقة If كما هو واضح أيضا من التعليقات ضمن الكود
ربما يرغب البعض بمناقشة هذا الموضوع بعيدا عن الدخول بموضوع المصادر المدارة والغير مدارة ولكن أثناء البحث مجددا في الموضوع وجدت أنه حتى نستطيع استخدام هذه الواجهة بالشكل الأمثل علينا فهم المصادر المدارة والغير مدارة بشكل جيد حتى نستطيع كتابة الإجراء بالشكل الأمثل
بعد هذه المقدمة سأطرح مثالين تاركا المجال للجميع للنقاش حول الموضوع كي نصل جميعا إلى الفهم الأمثل له
- رجاء حار أريد أن يكون هذا الموضوع للنقاش العلمي حصريا يرجى عدم طرح مشاركات شكر أريد مشاركات نقاش حول هذا الموضوع فقط
- تحدثت سابقا عن هذه الواجهة في موضوعي إدارة المصادر والواجهة IDisposable وقد قمت بإضافة فقرة في نهايته تتضمن طريقة بسيطة لمعرفة الكود المدار Managed Code من الكود الغير مدار Unmanaged Code لذا أرجو قراءة الموضوع ثانية حتى لو قرأته سابقا اقرأ المشاركة التالية بشكل خاص إضافتي الجديدة البارحة للموضوع
- المصادر المدارة هي جميع المصادر التي تتم إدارتها من قبل بيئة زمن التشغيل أي أن بيئة زمن التشغيل تضمن تدميرها في وقت ما بعد الإنتهاء من استخدامها
- يمكننا القول أن المصادر الغير مدارة هي جميع المصادر التي لا تتم إدارتها من قبل بيئة زمن التشغيل مثل مقابض الملفات و أغراض Com و مقابس الشبكة أي أن بيئة زمن التشغيل لا تضمن تدميرها
وعملية التمييز بين الكود المدار والغير مدار هامة جدا عندما نقوم بكتابة تحقيقنا للواجهة IDisposable في فئتنا حتى نعرف كيف نكتب الوظيفة Dispose بشكل جيد
نحن عندما نضيف عند تعريف الفئة السطر التالي لإضافة تحقيق IDisposable لفئتنا يتم إضافة الإجراء المحمي Dispose الذي هو موضوعنا هنا
كود :
Implements IDisposable
كود :
' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
' TODO: free other state (managed objects).
End If
' TODO: free your own state (unmanaged objects).
' TODO: set large fields to null.
End If
Me.disposedValue = True
End Sub
ربما يرغب البعض بمناقشة هذا الموضوع بعيدا عن الدخول بموضوع المصادر المدارة والغير مدارة ولكن أثناء البحث مجددا في الموضوع وجدت أنه حتى نستطيع استخدام هذه الواجهة بالشكل الأمثل علينا فهم المصادر المدارة والغير مدارة بشكل جيد حتى نستطيع كتابة الإجراء بالشكل الأمثل
بعد هذه المقدمة سأطرح مثالين تاركا المجال للجميع للنقاش حول الموضوع كي نصل جميعا إلى الفهم الأمثل له