Я думаю с string.Format()
этим легче увидеть, каким именно будет результат (так что у вас нет проблем с забытыми пробелами или чем-то в этом роде), а также легче набирать и изменять.
Если вы хотите сделать очень простое форматирование, использование +
оператора плюс может быть проще, но я склонен использовать его только при объединении двух строк, не более.
Чтобы показать, как string.Format()
проще изменить, представьте, что вы хотите добавить точку в конце предложения в своем примере: переход от string.Format("The int is {0}", i)
до string.Format("The int is {0}.", i)
- это всего лишь один символ. Но переход от "the int is " + i
к "the int is " + i + '.'
намного больше.
Еще одним преимуществом string.Format()
является то, что он позволяет легко указать формат для использования, например string.Format("The int is 0x{0:X}.", i)
. Это еще важнее при форматировании даты.
Что касается эффективности, то string.Format()
, скорее всего, она медленнее простых конкатенаций строк. Но код, подобный этому, скорее всего, не на горячем пути, так что это не имеет значения. И если это произойдет, вы, вероятно, лучше использовать StringBuilder
.