جدول المحتويات:
تعريف - ماذا يعني نوع Mutable؟
النوع القابل للتغيير ، في C # ، هو نوع من الكائنات التي يمكن تعديل أعضاء البيانات الخاصة بها ، مثل الخصائص والبيانات والحقول ، بعد إنشائها.
تُستخدم الأنواع القابلة للتغيير في التطبيقات المتوازية ، حيث يتم الحفاظ على كائنات نوع القيمة القابلة للتغيير في المكدس بواسطة وقت تشغيل اللغة العامة (CLR). يوفر هذا بعض التحسين ، مما يجعله أسرع من الكائنات المخصصة كومة الذاكرة المؤقتة. لمنع حدوث أخطاء التزامن في التطبيقات المتوازية بسبب الوصول إلى عدة مؤشرات ترابط البيانات المشتركة ، يتم استخدام أنواع قابلة للتغيير مع نوع من آلية تأمين.
نظرًا لطبيعتها المتأصلة ، يمكن تعديل بيانات النوع القابل للتغيير خلال وقت التشغيل ، لذلك غالبًا ما يتم استخدام النوع القابل للتغيير عندما يحتوي الكائن على كمية كبيرة من البيانات القابلة للتغيير. على الرغم من أن النوع القابل للتغيير ليس آمنًا ومؤمنًا للخيط كنوع ثابت ، إلا أنه يستخدم غالبًا مع متغيرات نوع القيمة ، والتي يتم تخصيصها في الحزمة ، مما يحسن الأداء.
يشرح Techopedia نوع Mutable
جميع أنواع القيم المضمنة مثل int ، double ، إلخ ، أنواع قابلة للتغيير ويمكن جعلها غير قابلة للتغيير عن طريق إضافة المعدل "للقراءة فقط" قبل المتغيرات. إذا تم تحديد نوع مرجع قابل للتغيير مع معدل للقراءة فقط ، فإن برنامج التحويل البرمجي C # ينشئ تحذيرًا. عن طريق إضافة معدّل للقراءة فقط إلى حقل نوع المرجع ، لا يمكن استبدال الحقل بمثيل آخر من نوع المرجع ، ولكنه سيسمح بتعديل بيانات مثيل الحقل من خلال نوع المرجع.
على سبيل المثال ، يعد StringBuilder نوعًا مرجعيًا قابلاً للتغيير في مكتبة .NET Framework ، يمكن من خلالها تعديل قيمة سلسلة مثيل تم إنشاؤه من هذا النوع عن طريق إلحاق الأحرف أو إزالتها أو استبدالها أو إدراجها.
لا ينبغي اشتقاق نوع قابل للتغيير من نوع ثابت لأن هناك إمكانية لطريقة افتراضية في الفئة المشتقة لتجاوزه بحيث تتم الكتابة فوق الأعضاء غير القابلة للتغيير.
القيد الرئيسي للنوع القابل للتغيير هو أنه أثناء تمرير كائن من النوع القابل للتغيير (مثل البنية) من خلال تعيين متغير محلي أو كمعلمة لطريقة ، يتم نقل قيمة الكائن وليس الكائن نفسه. بواسطة هذا ، يتم تغيير نسخة الكائن وليس الأصلي. قد يؤدي هذا السلوك إلى أخطاء غير متوقع.









