|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
||||||
Ref string не работает29.04.2021, 20:06. Показов 3719. Ответов 17
Метки нет (Все метки)
Совершенно не понял, по каким причинам string даже через ref не хочет меняться (уже странно было то, что ссылочный тип и его значения по ссылке нельзя менять сразу, ну да ладно).
Допустим, вот такой код:
0
|
||||||
| 29.04.2021, 20:06 | |
|
Ответы с готовыми решениями:
17
Не работает ref параметр
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 29.04.2021, 20:15 | |
Сообщение было отмечено RARiliar как решение
Решение
RARiliar, string не редактируется. Просто примите как данность. Можно создать только новый string или использовать другие типы данных, например StringBuilder.
0
|
|
|
1124 / 656 / 393
Регистрация: 28.01.2021
Сообщений: 1,336
|
|
| 29.04.2021, 20:15 | |
|
RARiliar, Строка неизменяемый тип, при чем тут ref??
1
|
|
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 20:20 [ТС] | |
|
esperanto_qun, при том, что это чрезвычайно необычно и в спецификации об этом ни слова? При чём когда-то другой человек спрашивал это же, но там ему ответили использовать ref и всех всё устраивало (??????). Какой-то балаган.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
||
| 29.04.2021, 20:25 | ||
|
https://docs.microsoft.com/ru-... mework-4.8 Еще можете тут почитать. https://metanit.com/sharp/tutorial/7.3.php
0
|
||
|
1124 / 656 / 393
Регистрация: 28.01.2021
Сообщений: 1,336
|
|||||||||||
| 29.04.2021, 20:27 | |||||||||||
|
RARiliar, что конкретно в вашей задаче надо сделать?
1. Изменить строку:
2. Или получить строку не возвращая, по ссылке? Тогда можно использовать не только ref, но и out:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 20:30 [ТС] | |
|
QuakerRUS
Я читал вот это https://docs.microsoft.com/ru-... troduction В остальное я не вчитывался. Там это назвали ссылочным типом, пояснили как они работают, а в других материалах они ломают свои же установленные правила, при чём дважды. Простите, но это выше моего понимания.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
||
| 29.04.2021, 20:31 | ||
string неизменяемый тип. Поэтому только массив char[], StringBuilder или хаки через unsafe.Вот тут еще какие-то хаки через Reflection https://gist.github.com/dtao/3371692...
1
|
||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
||
| 29.04.2021, 20:48 | ||
|
Добавлено через 11 минут RARiliar, если что, я говорю про ссылочный тип string (а не про ссылочный параметр ref), который является классом, а все классы - ссылочные типы.
1
|
||
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 21:27 [ТС] | |
|
esperanto_qun, basicCommand по сути должна была являться строкой, инициализируемой в глобальной области видимости, выполняющей функцию хранения в себе определённого кода, разного размера, для дальнейшей его передачи куда надо. Я хотел сделать это без каких-либо провисаний и лишних костылей, т.к. подобных команд может записываться несколько миллионов штук, а то и десятков миллионов в секунду, на протяжении всей работы программы (т.е. важна скорость). Но всё ещё хуже, т.к. различные методы записи туда символов, по стандарту, могут вписывать не более одного символа за раз. Так что все вот эти безопасные и "нужные" копирования туда-сюда вообще не в тему. Статические свойства класса тут тоже не подходят, если не извертеться раком с наследованием (т.е. сделать код немного уродливым).
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 29.04.2021, 21:37 | |
Сообщение было отмечено RARiliar как решение
Решение
RARiliar, посмотрите в сторону StringBuilder. А так же на его свойство Capacity в целях оптимизации выделения памяти, если размер строки планируется часто увеличивать. Так же в конструкторе можно задать сразу количество первоначально выделяемой памяти.
1
|
|
|
dive
4969 / 4665 / 847
Регистрация: 13.04.2015
Сообщений: 9,863
|
|||||||
| 29.04.2021, 21:48 | |||||||
Сообщение было отмечено RARiliar как решение
Решение
1
|
|||||||
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 22:01 [ТС] | |
|
I can, да, работает, но для меня не подходит, насколько я могу понимать работу данного метода.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
||
| 29.04.2021, 22:01 | ||
|
Да и вообще в .NET изменяемая строка это StringBuilder...
1
|
||
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 22:09 [ТС] | |
|
Someone007, суть именно в том, что basicCommand нужно записывать и перезаписывать каждый раз. Каждая команда имеет свой синтаксис, т.е. это мини программирование. И оно становится большим, когда таких команд генерируется очень много.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 29.04.2021, 22:45 | |
|
Всё равно не понятно... Ну вот сгенерировали вы команду, потом просто передаете её куда надо... Зачем что-то изменять?
Добавлено через 30 минут И вообще почему вы используете для этого строки? Не лучше ли было бы числовые переменные использовать?
0
|
|
|
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 15
|
|
| 29.04.2021, 22:45 [ТС] | |
|
Someone007, существует класс Action, в нём есть метод DoAct. Также есть enum ActionType, в котором кол-во ключей == кол-ву действий в DoAct. Существует 2 типа действий: Те, которые требуют команд, и те, которое не требуют их. Команды, в большинстве случаев, создаются именно теми действиями, которым команды для функционирования не нужны, как например: написание цифры, буквы, спец. символа. Тут соблюдается принцип квантования, т.е. любое безкомандное действие делает что-то одно и очень простое, не целые, блин, слова или конструкции. Соответственно, нельзя записать команду залпом и тут же её куда-то передать, тут нужно постоянное дополнение одной и той же строки, которая в будущем станет полноценной командой. Командные же действия требуют определённого синтаксиса, т.е. сложных инструкций для своей работы.
Я был бы очень рад сделать методы с параметрами и без для реализации этого всего, только вот параметров может быть слишком много (выше возможного на c#) и также нужно следить за типами параметров в таком случае, что отдельный напряг.
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,474
|
||
| 30.04.2021, 06:22 | ||
|
Если у вас некий процесс формирующий строку, то вам нужен StringBuilder (если вам поступают фрагменты строк) или коллекция неких типов на основе которой финальная строка и будет сформирована. А текущая хотелка адекватной не выглядит.
0
|
||
| 30.04.2021, 06:22 | |
|
Помогаю со студенческими работами здесь
18
Конструктор неявного преобразования из double и System::String ^ в ref class REF Ariston BCB31AAE нужна прошивка индикации, Не работает, выдает ошибку F9 Полиморфизм: ошибка преобразование типа из "ref cl_child" в "ref cl_proto" невозможно Ошибка Cannot convert from 'ref decimal' to 'ref decimal? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|