Что выведет код Junior Строки обновлено

StringBuilder: Insert, Remove, Replace

Вопрос

Что выведет программа (.NET 8)? По строке на каждый вывод.

using System.Text;

var sb = new StringBuilder("abc");
sb.Append("def").Insert(0, "_").Remove(2, 2);
Console.WriteLine(sb);
sb.Replace("e", "E");
Console.WriteLine(sb.ToString() + sb.Length);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: _adef, _adEf5. abc + def = abcdef, вставка в начало даёт abcdef.

Что выведет

_adef
_adEf5

Разбор

abc + def = abcdef, вставка в начало даёт _abcdef. Remove(2, 2) удаляет 2 символа с индекса 2 (bc): _adef. После Replace получаем _adEf, длина 5. В отличие от строки, StringBuilder меняется на месте и методы возвращают тот же объект для цепочки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.