Я читал, что строки в C# являются
неизменными - что означает, что однажды их значение не может быть изменено. Но мне любопытно относительно фактической причины и механизма , стоящего за этим дизайнерским решением.
Вопросы:
[*] Почему .NET сделал строки неизменными? += )?
Как этот дизайн влияет на использование памяти, производительность и безопасность потока? String.concat () :
Я заметил, что изменение ссылки на память после конкатенации (проверено с использованием object.referenceequals ), что позволяет предположить, что новый объект строки каждый раз. StringBuilder , который не воссоздает новые строки, поэтому мне любопытно, что
внутренний механизм обеспечивает непредубежденную для строки тип.
Подробнее здесь:
https://stackoverflow.com/questions/797 ... odify-them