Я начал использовать StringBuilder
, так как слышал, что он гораздо более оптимизирован, когда дело доходит до вывода строк.
Мой вопрос касается использования +
, поскольку строки неизменяемы и когда вы добавляете ихвместе он выделяет новую строку.
Если я использую этот оператор в аргументах для функции StringBuilder.Append
, я предполагаю, что он по существу будет иметь те же издержки.
Например:
string animal1 = "dog";
string animal2 = "cat";
stringBuilder.Append("Today I saw a " + animal1 + " and " + animal2);
MyПредполагается, что это может объединить эти тексты вместе, выделяя память в любом случае.
Я предполагаю, что более эффективный (хотя и многословный) способ сделать это будет:
stringBuilder.Append("Today I saw a");
stringBuilder.Append(animal1);
stringBuilder.Append(" and ");
stringBuilder.Append(animal2);
Это правильно?