English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في C#، نوع الأنواع غير القابلة للتغيير. هذا يعني أن الأنواع بعد إنشائها لا يمكن تعديلها. على سبيل المثال، سيتخذ النوع الجديد "Hello World!" مساحة ذاكرة على الذاكرة. الآن، عن طريق تغيير النوع الأساسي من "Hello World!" إلى "Hello World! من Tutorials Teacher" سيتم إنشاء نوع جديد في ذاكرة الذاكرة، وليس تعديل النوع الأصلي في نفس عنوان الذاكرة. إذا تم تعديل النوع الأصلي عن طريق استبدال، إضافة، حذف أو إدراج أنواع جديدة عدة مرات في النوع الأصلي، فإن هذا السلوك سيؤثر على الأداء.
توزيع الـ memory لـ obj String
لحل هذه المشكلة، تم إدخال StringBuilder في C# في namespace System.Text. لا يخلق StringBuilder obj جديدًا في الـ memory، بل يتم توسيع الـ memory ديناميكيًا لتكون قادرًا على استيعاب النص المعدل.
توزيع الـ memory لـ obj StringBuilder
يمكنك إنشاء obj StringBuilder باستخدام keyword new ومرور النص الأولي. في المثال التالي، يتم عرض إنشاء obj StringBuilder.
using System.Text; // دعوة StringBuilder sb = new StringBuilder(); // سيتم ضيف النص لاحقًا // أو StringBuilder sb = new StringBuilder("Hello World!");
أو يمكنك أيضًا استخدام constructor المعدل لتحديد كمية الأقصى لـ StringBuilder، كما يلي.
StringBuilder sb = new StringBuilder(50); // سيتم ضيف النص لاحقًا // أو StringBuilder sb = new StringBuilder("Hello World!", 50);
فيما يلي، يوزع C# على الـ heap الـ memory بترتيب متتابع ويوفر حتى 50 مساحة. عند الوصول إلى الكمية المحددة، يتم تضاعف الكمية تلقائيًا. يمكنك أيضًا استخدام properties capacity أو length لتعيين أو استخراج كمية StringBuilder.
يمكنك استخدام loop for للحصول على أو تعيين الحرف في موقع معين.
StringBuilder sb = new StringBuilder("Hello World!"); للحصول على أو تعيين الحرف في موقع معين، يمكنك استخدام loop for. Console.Write(sb[i]); // الناتج: Hello World! }
StringBuilder ليس نصًا. استخدم طريقة ToString () لاستخراج النص من obj StringBuilder.
StringBuilder sb = new StringBuilder("Hello World!"); var greet = sb.ToString(); // يعود بـ “Hello World!” "Hello World!"
استخدام طريقة Append () لضيف النص في نهاية obj StringBuilder الحالي. إذا لم يحتوي StringBuilder على أي نص، سيضيفه. يضيف method AppendLine () علامة النهاية للسطر.
StringBuilder sb = new StringBuilder(); sb.Append("Hello "); sb.AppendLine("World!"); sb.AppendLine(" C#"); Console.WriteLine(sb);
مرحبًا World! مرحبًا C#
استخدام طريقة AppendFormat() لتنسيق النص المقدم إلى نموذج محدد ثم إضافته.
StringBuilder sbAmout = new StringBuilder("مجموعكم هو "); sbAmout.AppendFormat("{0:C} ", 25); Console.WriteLine(sbAmout); // الناتج: مجموعكم هو 25.00 $
استخدام طريقة Insert() لوضع نص في موقع معين في كائن StringBuilder.
StringBuilder sb = new StringBuilder("Hello World!"); sb.Insert(5, " C#"); Console.WriteLine(sb); // الناتج: مرحبًا C# World!
استخدام طريقة Remove() لإزالة النص من النقطة المحددة حتى الطول المحدد.
StringBuilder sb = new StringBuilder("Hello World!", 50); sb.Remove(6, 7); Console.WriteLine(sb); // الناتج: مرحبًا
استخدام طريقة Replace() لتغيير جميع الاستبدالات المحددة من النص المحدد إلى النص المحدد.
StringBuilder sb = new StringBuilder("Hello World!"); sb.Replace("World", "C#); Console.WriteLine(sb); //الناتج: Hello C#!
StringBuilder قابل للتغيير.
أداء StringBuilder في إضافة عدة نصوص متعددة أسرع من string.
عندما تحتاج إلى إضافة ثلاثة أو أربعة نصوص أو أكثر، استخدم StringBuilder.
استخدم طريقة Append() لإضافة أو إضافة نص إلى كائن StringBuilder.
استخدم طريقة ToString() للحصول على النص من كائن StringBuilder.