Вопрос

Дубликат из : Вывод строки:форматировать или объединять в C #?

Особенно в мире C #, использующем String.Форматирование для всего действительно распространено, обычно как VB.NET разработчик, если мне не нужно * Я не строю.Форматирование,

Я предпочитаю обычную конкатенацию строк, такую как:

V1 = V2 & "test-x" & V3 & "-;"

для меня это лучше, чем это:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

Я что-то упускаю?Или это просто личное предпочтение?

Причины использования String.Формат (из ответов) (Я постараюсь держать это в курсе событий)

  • Локализация намного проще, если вы используете строковый формат
  • Очевидно, что проще изменить формат ввода
  • Это более читабельно (однако это личное)
  • Лучшая производительность

** Иногда мне нужно изменить стиль или заменить материал динамически, тогда я использую String.Формат*

Это было полезно?

Решение

Если вы когда-нибудь собираетесь локализовать свое приложение (а это часто трудно исключить с самого начала), то String.Формат должен быть гораздо предпочтительнее по двум причинам:

  1. У вас есть только один строковый литерал для перевода
  2. Вы можете изменить порядок значений, что может иметь больше смысла на другом языке.

Другие советы

Все писали о том, насколько удобочитаем string.format (что я принимаю, и у него нулевая ссылка и преимущества интернационализации да), но никто не упомянул, что это значительно медленнее, чем простая конкатенация строк (небольшое количество элементов) или использование StringBuilder (большое количество конкатенаций).

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

Редактировать:Ссылки по запросу ;)

http://msmvps.com/blogs/jon_skeet/archive/2008/10/06/formatting-strings.aspx

http://blog.briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

Хорошая статья здесь от Карла Сегена: код лучше - используйте string.format объясняю некоторые преимущества.

Первый метод очень сложен для чтения и еще более утомителен при вводе текста.Кроме того, как только вы начнете выполнять множество таких конкатенаций, вам следует подумать о соображениях производительности.

Если вы на самом деле форматируете значения ({0:d} и т.д.), используйте String.Форматирование намного удобнее для чтения, чем конкатенация строк.

Для меня это зависит от содержания.Объединение строк создает дополнительные строковые объекты (потому что строки являются неизменяемыми в .NET), хотя в основном это проблема с удобочитаемостью.

Иногда это становится сложным, когда вы хотите поместить символы новой строки в строку, и в этом случае я обычно использую что-то вроде:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

Лично я нахожу эту строку.Формат удобнее для чтения, строка представлена в виде одного последовательного текста.Однако это зависит от того, сколько существует параметров, если вам нужно найти правильный параметр, чтобы понять его, то ...

Я считаю, что это скорее вопрос предпочтений.Однако, как только я начал использовать его регулярно, большая часть моей команды последовала моему примеру.Когда мы обсуждали это, было решено, что это просто легче понять и прочитать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top