تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Tips and tricks - رقم 1 - StringBuilder
#1
منقول من المنتدى القديم
كاتب الموضوع احمد جمال المشرف العام
بتاريخ 13-02-08
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

عندما نقوم بدمج النصوص ، يلجأ الكثيرون منا لاستخدام المعامل + في C# أو المعامل & في VB.net بالشكل التالي - مثال اضافة امتداد البريد الإلكتروني :
كود :
//C#:
Label1.Text =  Text1.Text + "@hotmail.com";

كود :
'VB.net:
Label1.Text =  Text1.Text + "@hotmail.com";

إلا أن Visual Studio قدمت لنا طريقة أخرى لدمج النصوص باستخدام الفئة StringBuilder ، في مجال الأسماء System.Text.StringBuilder ، يمكن استخدامها لدمج النصوص بالشكل التالي :

كود :
//C#:
System.Text.StringBuilder mail = New System.Text.StringBuilder(Text1.Text);
mail.Append("@hotmail.com");
كود :
'VB.net:
Dim mail As New System.Text.StringBuilder(Text1.Text)
mail.Append("@hotmail.com")

الفارق بين الاثنين يكمن في ان stringbuilder يظل كما هو منذ لحظة انشاءه ، اما استخدام المعاملات + أو & فهو يقوم بعمل Object جديد من ال String مع كل عملية دمج .

والآن سنفترض مثال Loop تقوم بدمج عدد من النصوص ، وسنصور المقارنة مباشرة من كتاب .Net Gotachas ، حيث قام بعمل اختبار لعدد عمليات دمج ابتداء من 10 عمليات دمج وحتى 1000000 عملية دمج ، وقام بمقارنة الأداء بين استخدام StringBuilder او استخدام معاملات الدمج التقليدية ، مع ذكر زمن التنفيذ بالثانية لكل منهم .

[ATTACH=CONFIG]758[/ATTACH]

لا تنسى ان 3562.933 ثانية تعني 59.4 دقيقة تقريباً ...
والآن ... هل ما زلت تستخدم & او + لدمج النصوص ؟؟؟

توفر الفئة stringbuilder ايضاً عمليات استبدال Replace وادراج Insert وحذف Remove وعمليات نصوص أخرى كثيرة ، يمكنك الاطلاع على أوجه كثيرة للمقارنة مدعومة بالرسوم البيانية من خلال هذا الرابط من Code Project :
http://www.codeproject.com/KB/cs/StringB...tring.aspx

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
مشكوور جداً على الموضوع .. فرق كبير بين استعمال المثالين .. وخصوصاُ في المشاريع الكبيرة
Everyone is a genius. It's just that some people are too stupidto realize it
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الفئة StringBuilder RaggiTech 0 2,167 02-10-12, 07:40 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم