String или StringBuilder возвращаемые значения? - PullRequest
17 голосов
/ 07 мая 2009

Если я строю строку с использованием объекта StringBuilder в методе, имеет ли смысл:

Вернуть объект StringBuilder и позволить вызывающему коду вызвать ToString ()?

return sb;

ИЛИ Вернуть строку, вызвав ToString () самостоятельно.

return sb.ToString();

Полагаю, это имеет значение, если мы возвращаем маленькие или большие строки. Что будет уместно в каждом конкретном случае? Заранее спасибо.

Edit: Я не планирую дальнейшее изменение строки в вызывающем коде, но хороший момент, Колин Бернетт.

В основном, эффективнее ли возвращать объект StringBuilder или строку? Будет ли возвращена ссылка на строку или копия?

Ответы [ 11 ]

0 голосов
/ 07 мая 2009

Если вам нужно добавить больше строк в строку и использовать другие функции, связанные со строителем строк, верните строитель строк. В противном случае, если вы просто используете саму строку, верните строку.

Существуют и другие технические соображения, но это касается наивысшего уровня.

...