Что такое классы System.String и System.Text.StringBuilder?
Этот вопрос проверяет знание о том, как работают строки в C# и когда следует использовать String или StringBuilder.
Короткий ответ
Класс String является неизменяемым, что означает создание нового объекта при каждой модификации строки. В то время как StringBuilder позволяет изменять строки в памяти без создания новых объектов, что делает его более эффективным при частых изменениях.
Длинный ответ
В C# строки представляют собой объекты класса String, который является неизменяемым. Это означает, что любые изменения строки приводят к созданию нового объекта в памяти. Например, при конкатенации строк или их изменении будет выделяться новая память для каждой операции.
Класс StringBuilder предназначен для работы с изменяемыми строками. Он используется, когда необходимо многократно изменять строку (например, при добавлении, удалении или замене символов), чтобы избежать ненужных операций по созданию новых строк в памяти.
Пример:
string str1 = "Hello";
str1 += " World"; // Здесь создается новый объект строки
StringBuilder sb = new StringBuilder("Hello");
sb.Append(" World"); // Строка изменяется без создания нового объекта
Console.WriteLine(sb.ToString()); // Выводит "Hello World"