|
2 / 2 / 2
Регистрация: 24.10.2013
Сообщений: 13
|
||||||
Новый экземпляр String?10.01.2014, 22:55. Показов 1356. Ответов 17
Метки нет (Все метки)
А то совсем запутался.
0
|
||||||
| 10.01.2014, 22:55 | |
|
Ответы с готовыми решениями:
17
Ссылка на строку не ссылается на экземпляр String Массив String - Ссылка на объект не указывает на экземпляр объекта Стоит ли создавать новый экземпляр класса для каждого запроса к бд? |
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 10.01.2014, 23:16 | |
|
да, каждый раз новая строка. А как иначе?
1
|
|
|
2 / 2 / 2
Регистрация: 24.10.2013
Сообщений: 13
|
|||||||||||||||||
| 11.01.2014, 00:10 [ТС] | |||||||||||||||||
|
Допустим есть класс Person:
А я располагаю какой-нибудь функцией рисующей интерфейс, которая каждый кадр выводит мне список людей:
0
|
|||||||||||||||||
|
176 / 144 / 70
Регистрация: 01.05.2012
Сообщений: 414
|
|
| 11.01.2014, 00:24 | |
|
Так а в чем проблема? Будет перед именем "Дядя-")
1
|
|
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
| 11.01.2014, 00:24 | ||||||
|
Ну и выводи, как написал. Тебя смущает, что каждый раз новая строка создаётся?
Разве что я бы написал так:
1
|
||||||
|
2 / 2 / 2
Регистрация: 24.10.2013
Сообщений: 13
|
||||||||||||
| 11.01.2014, 00:58 [ТС] | ||||||||||||
|
Хорошо, спасибо за ответы) Добавлено чуть позже .... Наверное проще создать какой-нибудь Dictionary<Person, string> myDictionary, и при инициализации в строку забить собственное представление имени:
0
|
||||||||||||
|
Master of Orion
|
|||||||||||
| 11.01.2014, 01:48 | |||||||||||
|
ViterAlex, смысл инсерта? Просто ради инсерта? И да, в примере
А вот в
Ничего страшного в этой записи нет, все корректно. Добавлено через 1 минуту см. интернирование: http://habrahabr.ru/post/165597/
1
|
|||||||||||
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 11.01.2014, 07:48 | |
|
0
|
|
|
60 / 59 / 15
Регистрация: 04.05.2010
Сообщений: 161
|
|
| 11.01.2014, 08:00 | |
|
используй stringbuilder
0
|
|
|
Master of Orion
|
|||||||
| 11.01.2014, 08:07 | |||||||
|
http://ideone.com/Bqm7tk
2
|
|||||||
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|||||||||||
| 11.01.2014, 12:09 | |||||||||||
|
Я именно так и проверял. Только не считал среднее значение и выводил значение в тиках. И у меня получается, что Insert быстрее:
![]() Спасибо за хороший код
0
|
|||||||||||
|
18 / 18 / 6
Регистрация: 10.01.2014
Сообщений: 45
|
||||||||||||||||
| 11.01.2014, 13:34 | ||||||||||||||||
|
Можно же разбирать IL код .Смотреть какие инструкции выполняются.
Нет экземпляра, а значит нет проверки на null. string s2 = str.Insert(0, "B");
сначала сгенерирует код для проверки переменной str на null. Из-за этого инструкция call выполняется быстрее чем инструкция callvirt. рихтер clr via c# читаю
0
|
||||||||||||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 11.01.2014, 14:11 | ||
|
TeachMeC, это рассуждения ну о чем. Ни надо никуда смотреть, достаточно просто подумать.
"A".Insert(0, "B") и "A" + "B" выполняют совершенно одно и тоже, а именно - резервируют память под новую строку и копируют в нее содержимое старых. Т.о. это эквивалентные операции и они отрабатываю за практические одинаковое время (флуктуация в несколько процентов можно не рассматривать). Из-за кучи мелочей в реализации, под Mono (aka ideone) чуть работает быстрее "+", а под виндой чуть быстрее работает Insert. Но "A" + "B" очевидно более читаемый вариант и смысла в использовании .Insert(0, нет под любой платформой. А сравнивать это
1
|
||
|
18 / 18 / 6
Регистрация: 10.01.2014
Сообщений: 45
|
|||
| 11.01.2014, 14:18 | |||
|
0
|
|||
|
Master of Orion
|
|
| 11.01.2014, 15:11 | |
|
ViterAlex, ну я запускал на разных компьютерах - и везде + чуть быстрее. Про удобочитаемость хотел сказать, но потом передумал, а потом и за меня все сказали.
Добавлено через 4 минуты Напоминает мне, как я когда начинал программировать в паскале, экономил на памяти: объявлял переменную типа byte, а не int, рассуждая как: зачем мне тратить 3 лишних байта, я то точно знаю, что цикл маленький!.. А вот про то, что все равно выравнивается по 4 байта, неявное преобразование в int каждый раз и еще всякое интересное только замедляет и ухудшает код - и все же. Алсо, никогда не стоит писать a >>= 1 вместо a /= 2, или y = a&1 вместо y = a%2 и пр. Компилятор не дурак и сам умеет заменять деление сдвигами. Причем помню он даже уможение на 40 расписал как x = a >> 6 y = a >> 3 res = x + y
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||||||
| 11.01.2014, 15:30 | |||||||
|
Кликните здесь для просмотра всего текста
0
|
|||||||
| 11.01.2014, 15:50 | |
|
0
|
|
| 11.01.2014, 16:35 | ||
|
Не по теме:
1
|
||
| 11.01.2014, 16:35 | |
|
Помогаю со студенческими работами здесь
18
Неясная ошибка: Новый экземпляр проигнорирован Добавить новый экземпляр структуры в список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|