ما هو StringBuilder و ما الفرق بينه و بين string العادية ؟

مواضيع مفضلة

ما هو StringBuilder و ما الفرق بينه و بين string العادية ؟


ما هو StringBuilder ؟

StringBuilder هو فئة (class) من الفئات الرئيسية
التي تقدمها منصة NET. يحتوي StringBuilder على
إجرائات و وظائف (Methods & Functions) للتعامل
مع النصوص و يفضل إستخدامه أحيانا على الـ string العادية.

ما الفرق بين StringBuilder و string عادية ؟

الـ string العادية غير قابلة للتغيير (immutable) أي
فور ما ننتج string عادية لا نستطيع تغيير قيمتها الحقيقية
التي تقطن في مكان ما في الذاكية، نعم برمجيا تستطيع
تغيير قيمة الـ string و لكن في الحقيقة هذا ليس تغيير
بل إنشاء لـ string جديدة تماما في مكان آخر في الذاكرة.
الـ StringBuilder أنشئ ليغطي هذه الهفوة أو الغلطة إن
جاز التعبير بحيث يمكنك حذف/التعديل على قيمته الحقيقية
دون أن يتم إنشاء مكان آخر في الذاكرة و string جديدة كليا.

لماذا و متى تستعمل StringBuilder ؟

من الواضح أن السبب الوحيد هو الأداء و الجودة
و بالتالي السرعة، سأستعمل StringBuilder عندما
يتعين علي أن أبني نص قد سأحتاج لتغيير قيمته بشكل
متواصل أو حتى إن تعين علي التعديل عليه مرة واحدة إذا
كان النص كبير، ضخم، أعرف أن مكانه في الذاكرة ليس بالضيق.
إذ إن فعلت العكس و إستعملت الـ string العادية في الحالات
المذكورة سأكون قد خسرت مقدار هام من الذاكرة و الوقت،
و مع هذا في الحالات التي تكون فيها القيمة صغيرة مع تعديلات
أو إضافات قليلة و معلومة إستعمال الـ string العادية طبعا أفضل
للسهولة و حتى السرعة و لكن الفرق سيكون قاتل إن لم أستعمل
StringBuilder حيثما يجب إستعماله.

الخلاصة

سأستعمل string عادية عندما لا أحتاج لتغيير قيمتها وقت التشغيل،
سأستعمل StringBuilder عندما أحتاج لأن أقوم بتغييرات وقت التشغيل،
إن كنت أحتاج للقيام بتغييرات على القيمة وقت التشغيل و القيمة ليس كبيرة
و التعديلات مجرد تعديلات بسيطة سأقوم بإستعمال string
عادية لأن العكس هو مبالغة في ردة الفعل.

إرسال تعليق

المشاركة على واتساب متوفرة فقط في الهواتف