|
0 / 0 / 1
Регистрация: 14.11.2013
Сообщений: 20
|
||||||
Некорректно заполняется массив знаков14.11.2014, 10:55. Показов 721. Ответов 4
Метки нет (Все метки)
Привет всем! Я новичок. Написал простецкий класс для генерации id в формате (блок)-(блок)-(блок), или вот так ####-####-####. Количество блоков и количество знаков в блоке задается в конструкторе. Коротко о том как построен класс: в методах оперируем стрингбилдером чтобы не захламлять циклами код, который в последующем приводим к строке. Каждый блок генерируем отдельно (string GeneratePart(int blockSize)). В методе простая логика: генерируем рандомное число, если оно нечетное то генерируем для блока рандомный числовой символ (int GenerateNumber()) и средствами метода экземпляра стрингбилдера Append(char ch) конкатим символ к концу строки, если число четное генерируем рандомный буквенный символ в диапазоне букв по латинскому алф. от 'a' до 'z'. Вся загвоздка в том что после компиляции получается что то вроде 7777-7777-7777 или kkkk-kkkk-kkk, а должно быть что то вроде этого a9sd-asd8-a6jk ну и т.д. Запускаю отладку - всё отлично генерируется как и должно, слежу за каждой итерацией, компилирую - получается фигня. В чем дело кто подскажет?
0
|
||||||
| 14.11.2014, 10:55 | |
|
Ответы с готовыми решениями:
4
Строка в двумерный массив, массив заполняется со 2 строки Не заполняется массив Массив не заполняется |
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
| 14.11.2014, 11:09 | |
|
Nuzland, основная проблема в создании кучи экземпляров Random инициализированных одним значением (текущим временем). Лучше использовать один Random для генерации частей id во всех трех методах, или даже один на все приложение.
0
|
|
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
||||||
| 14.11.2014, 11:21 | ||||||
|
Оооо, это известная проблема)
Попробуй сделать private поле в классе: Random rnd = new Random(); И везде, где нужно, генерь числа через него. Должно помочь. Типа такого
0
|
||||||
|
0 / 0 / 1
Регистрация: 14.11.2013
Сообщений: 20
|
|
| 14.11.2014, 12:15 [ТС] | |
|
добавил статическое поле Random. Проблема решилась. Спасибо большое.
Немного отвлеченно, касаемо кучи. Почему clr на каждом шаге итерации обращается к одному и тому же блоку памяти? Это как то касается именно Random объектов? Чтобы на будущее не повторять таких ошибок. Добавлено через 5 минут ну я так же подумал зачем создавать миллион ненужных объектов, когда можно пользоваться одним на все экземпляры.
0
|
|
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
||||||
| 18.11.2014, 12:27 | ||||||
|
Оооо, это известная проблема)
Попробуй сделать private поле в классе: Random rnd = new Random(); И везде, где нужно, генерь числа через него. Должно помочь. Типа такого
0
|
||||||
| 18.11.2014, 12:27 | |
|
Помогаю со студенческими работами здесь
5
Не понятно почему не заполняется МАССИВ Dictionary
Некорректно заполняется таблица Почему некорректно заполняется структура? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|