Что такое классы 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"

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • C#

Подпишись на C# Developer в телеграм