Web Devs
641 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
#StringBuilder
⁉️ از " +" در حلقه های الحاق رشته ها استفاده نکنید!

1️⃣ در سی شارپ string بصورت immutable پیاده سازی شده است.(وقتی شما یک متغیر string تعریف و مقداردهی می کنید، دیگر نمی توانید آنرا تغییر دهید)

2️⃣ رشته ها بصورت یک آرایه از کاراکترها ذخیره میشوند که با هم کنار قرار گرفتن این کاراکترها، متن مورد نظر شکل می گیرد ( هنگام تعریف آرایه ها باید طول آرایه مشخص شود و بعد از تعریف آن، طول آرایه قابل اضافه و کم کردن نیست)

3️⃣ هنگاهی که مقدار string را میخواهید تغییر دهید، و از طرفی چون مقدار قبلی که یک آرایه از کاراکترها است و قابل تغییر نیست، بنابراین مقدار جدید را در یک آرایه جدید کپی می کند و با این کار یک بلوک جدید از خانه های حافظه را به آن اختصاص داده می دهد.
با انجام چندین بار اصلاح یک رشته موجود باعث می شود تخصیص چندگانه حافظه بر عملکرد تأثیر بگذارد.

راه حل استفاده از StringBuilder است که یک کلاس رشته mutable است .
این StringBuilder بعد از تغییر یک شیء جدید در حافظه ایجاد نمی کند بلکه dynamically memory برای قرار دادن رشته اصلاح شده ، تخصیص داده میشود.

@fullStackDevs
👍15