ورود

View Full Version : سوال: StringBuilder چیست و کاربردش کجاست



mortezamhd
جمعه 11 دی 1388, 19:52 عصر
سلام

دوستان میشه یک توضیح کامل در مورد StringBuilder بدید ( طریقه کار . کاربرد و...)

مرسی

ACorvinus
جمعه 11 دی 1388, 21:02 عصر
سلام .

مایکروسافت میگه برای جمع چند تا کلمه یا چند تا رشته با همدیگر بهتره از کلاس StringBuilder استفاده کنیم نه عملگر + یا &

برای استفاده از کلاس StringBuilder به این صورت عمل می کنیم:



Dim Str As New System.Text.StringBuilder

Str.Append("Hello, ")
Str.Appendline("World!")
' و ده ها خط دیگه که به این رشته اضافه میشه

Dim Result As String = Str.ToString

gigidagostino
جمعه 11 دی 1388, 21:10 عصر
سلام
من اینو از MSDN برداشت کردم.نمیدونم چقدر درسته اما اگر دوستان با تجربه تر اصلاحش کنن ممنون میشم.
از System.text.Stringbuilder زمانی استفاده میشه که شما بخاید یک String رو تغییر بدید،بدون اینکه یک شی جدید ایجاد کنید. ایجاد وتغییر یک رشته هزینه بره ،یعنی هر بار که شما از متدی در System.String استفاده کنی یک رشته در Memory ایجاد میشه که باید آدرس دهی بشه و جا اشغال میکنه(توی حجم بالا بهش نگاه کنید).اما Stringbuilder این کاررو بدون ایجاد شی جدید انجام میده.

Dim MyStringBuilder As New StringBuilder("Hello World!")
d

اینجوریم طولش تعیین میشه
MyStringBuilder.Capacity = 25
متد EnsureCapacity هم اگر طول رشته بیشتر از مقدار Capacity بود،مقدار
اونو به طول رشته میرسونه.
اینم بقیه متدهاش:
Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Append(" What a beautiful day.")
Console.WriteLine(MyStringBuilder)

-----------------------------------------------------
Dim MyInt As Integer = 25
Dim MyStringBuilder As New StringBuilder("Your total is ")
MyStringBuilder.AppendFormat("{0:C} ", MyInt)
Console.WriteLine(MyStringBuilder)

-----------------------------------------------------
Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Insert(6, "Beautiful ")
Console.WriteLine(MyStringBuilder)

----------------------------------------
Dim MyStringBuilder As NewStringBuilder("Hello World!")
MyStringBuilder.Remove(5, 7)
Console.WriteLine(MyStringBuilder)
----------------------------------------------------
Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Replace("!"c, "?"c)
Console.WriteLine(MyStringBuilder)

متدهاشم که مشخصه.(ببخشید هر کاری کردم نتونستم درستشون کنم)
یه Length هم داره که اگه بیشتر از Capacity تعیین بشه مقدار Capacity
به اون افزایش پیدا میکنه و اگر کمتر از خود Length باشه رشته کوتاه میشه.
من فقط ترجمه کردم.امیدوارم کمکی بکنه اینهمه نوشته!!!