3 / 3 / 2
Регистрация: 24.05.2013
Сообщений: 158
|
|||||||||||
В чем разница между 2 способами создания строки?04.08.2016, 12:47. Показов 1462. Ответов 9
Метки нет Все метки)
(
Создание строки из составных частей, посредством сложения или через String.Format
1. Какой вариант вы используете? 2. Есть ли разница между ними? Пример 1
0
|
04.08.2016, 12:47 | |
Ответы с готовыми решениями:
9
|
71 / 66 / 29
Регистрация: 28.10.2013
Сообщений: 248
|
||||||
04.08.2016, 13:31 | ||||||
В первом примере я бы обычным "+" обошелся. Однако если после значения нужна точка - воспользовался бы string.Format
![]() Приведу несколько более очевидный пример. У вас есть старое значение суммы денег (decimal), новое значение (decimal) и локализованное название валюты, нужно все это представить в виде строки, по пути округлив значения до 2 знаков после запятой.
1
|
3 / 3 / 2
Регистрация: 24.05.2013
Сообщений: 158
|
|
04.08.2016, 13:40 [ТС] | |
Да, согласен, когда нужен именно отформатировать string.Format может неплохо укоротить длину кода. Однако я привел именно эти примеры поскольку, часто вижу именно такие случаи, где форматирование не нужно. Так вот вопрос, это дело привычки программиста или есть скрытые от моего глаза преимущества, и эти программисты познали великую истину?
P.S. Я привык к первому варианту. Применяю его обоих из этих двух примерах.
0
|
![]() ![]() 17810 / 12961 / 3381
Регистрация: 17.09.2011
Сообщений: 21,250
|
||||||
04.08.2016, 13:40 | ||||||
![]() Решение
Зависит от ситуации.
В вашем случае я бы использовал третий вариант:
Вариант с форматированием будет чуть медленнее (может, пару микросекунд), но это не критично. Выбирайте более читаемый код. Я вот с выходом шестого шарпа влюбился в интерполяцию. Чувствую себя настоящим ПоХаПистом ![]()
1
|
![]() ![]() 17810 / 12961 / 3381
Регистрация: 17.09.2011
Сообщений: 21,250
|
|
04.08.2016, 13:55 | |
А он на момент написания любой будет читаемым казаться — вы же его пишете здесь и сейчас, знаете о чем он.
Чтобы проверить читаемость кода по-настоящему, откройте какой-нибудь из своих старых проектов хотя бы годовалой давности, найдите подобное место и попробуйте сходу определить, какая строка будет на выходе. А еще лучше, попросите это сделать кого-нибудь из ваших знакомых. Получится — значит с читаемостью всё ОК ![]()
0
|
![]() ![]() 17810 / 12961 / 3381
Регистрация: 17.09.2011
Сообщений: 21,250
|
|
04.08.2016, 14:12 | |
Ну если вам такой стиль нравится, не ухудшает читаемость и не производится в цикле, то пользуйтесь на здоровье.
Инструменты в языке на то и даны, чтобы их использовать ![]()
0
|
04.08.2016, 14:12 | |
Помогаю со студенческими работами здесь
10
В чем разница между несколькими if и if + else if? В чем разница между call и callvirt В чем разница между EndInvoke и BeginInvoke?
В чем разница между int16 и int32? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
|
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
|
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations
рестрикции доступа на сервер sshd
статья:
https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
|
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
|
Многопоточное программирование в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
|
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
|
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
|
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
|
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
|
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|