string.format vs + оператор для конкатенации строк - PullRequest
1 голос
/ 21 марта 2012

Что лучше в отношении производительности и использования памяти?

// + Operator
oMessage.Subject = "Agreement, # " + sNumber + ", Name: " + sName;

// String.Format
oMessage.Subject = string.Format("Agreement, # {0}, Name: {1}", sNumber, sName);

Я предпочитаю использовать память. Оператор + используется во всем приложении. String.Format и StringBuilder используются редко. Я хочу уменьшить количество фрагментации памяти, вызванной чрезмерным выделением строк.

1 Ответ

8 голосов
/ 21 марта 2012

Лучшим вариантом в данном конкретном случае является оператор +.Компилятор вызовет String.Concat из вашего кода:

oMessage.Subject = String.Concat("Agreement, # ", sNumber, ", Name: ",  sName);

String.Concat будет циклически проходить по строкам для определения общей длины, выделять строку с этой длиной и копировать каждую строку втот.Это наиболее эффективный способ объединения нескольких строк.


Примечание. Если вы объединяете строки с типами значений (например, целыми числами), вам следует явно преобразовать их в строки.В противном случае они будут упакованы, и все будет отправлено как объекты в метод String.Concat:

oMessage.Subject = "Agreement, # ", iNumber.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...