بسم الله الرحمن الرحيم . السلام عليكم ورحمة الله وبركاته . عندما نقوم بدمج النصوص ، يلجأ الكثيرون منا لاستخدام المعامل + في 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 او استخدام معاملات الدمج التقليدية ، مع ذكر زمن التنفيذ بالثانية لكل منهم .
لا تنسى ان 3562.933 ثانية تعني 59.4 دقيقة تقريباً ... والآن ... هل ما زلت تستخدم & او + لدمج النصوص ؟؟؟ توفر الفئة stringbuilder ايضاً عمليات استبدال Replace وادراج Insert وحذف Remove وعمليات نصوص أخرى كثيرة ، يمكنك الاطلاع على أوجه كثيرة للمقارنة مدعومة بالرسوم البيانية من خلال هذا الرابط من Code Project : http://www.codeproject.com/KB/cs/StringBuilder_vs_String.aspx
والله الموفق ... والسلام عليكم ورحمة الله وبركاته .
التسميات: C#, Tips And Tricks, VB.net |