|
3 / 2 / 1
Регистрация: 04.02.2023
Сообщений: 34
|
|||||||||||
.NET 8 Переназначение ссылки с помощью оператора ref не работает24.07.2024, 19:21. Показов 2645. Ответов 29
Метки нет (Все метки)
Приветствую всех. Очень хотелось бы разобраться с данным вопросом, буду рад ответам.
https://learn.microsoft.com/en... t-operator В данной статье говорится об операторе "ref"(не который используется в параметрах методах, а который служит некоторым псведонимом для ссылки на объект) Например:
0
|
|||||||||||
| 24.07.2024, 19:21 | |
|
Ответы с готовыми решениями:
29
Ссылки в C#: ref и out Передача ссылки по ссылке (ref) Программирование с помощью условного оператора и оператора выбора |
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
||
| 22.08.2024, 13:32 | ||
|
Еще в 2018-году опубликованной by K.Kokosa известной книге, не требующей рекламы, упоминается про гарантии таких объектов: - They are never heap allocated и как следствие, - No cross-thread synchronization required Что может быть очень полезным, когда нам нужны такие гарантии. Btw, 6 лет всего прошло, а книга слегка устарела (появился POH, который не упоминается в книге, поведение на Unix-ах тоже). Добавлено через 1 минуту Зато ClrMD упоминается - бомбическая либа..
0
|
||
| 22.08.2024, 14:05 | |
|
0
|
|
| 22.08.2024, 14:16 | |
|
Не по теме:
0
|
|
| 22.08.2024, 14:21 | |
|
Не по теме: IamRain, в твиттере был пост. Писал не автор, но он репостнул этот твит. Больше ничего не было. Поэтому я и написал - "слух".
0
|
|
|
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
|
|
| 22.08.2024, 17:28 | |
|
0
|
|
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
||
| 22.08.2024, 18:17 | ||
|
Упаковать в object - нельзя. Реализовать интерфейс - нельзя. ref struct появились, насколько я понимаю, из-за необходимости реализовать т.н interior pointer-ы - то есть ссылки не только на ссылочные типы (на MethodTable - MT - структуру объекта, то есть на начало объекта), но и на произвольные участки памяти (поля объектов, элементы массивов). Соответственно ссылаться можно (помимо unmanaged) - речь про Span-ы уже - на элементы в стеке (либо в регистры), либо на кучу. Если ссылаемся на стек, то нужна гарантия что pointer не будет жить дольше (outlive) чем сам кусок памяти, на который мы ссылаемся. Отсюда ятп, ребята хорошо подумали, и решили ограничить время жизни только стеком, в котором ref struct был создан.
1
|
||
|
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
|
|
| 22.08.2024, 21:53 | |
|
IamRain, так понимаю ссылочные структуры ввели ввиду преимущества указателей в безопасном контексте и в предотвращении выделения памяти во многих распространенных ситуациях.
0
|
|
|
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
|
||||||
| 23.08.2024, 14:55 | ||||||
|
IamRain, для примера можно написать структуру-перечислитель, функционирующий подобно методу Split объекта string, который не будет выделять память:
1
|
||||||
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
|
| 23.08.2024, 15:16 | |
|
INexteR, интересное решение, смотрю, вы повернутый на perf-e.
![]() Главное, чтобы все было к месту. Это как производительность логгеров увеличивать - а надо ли? GC в Workstation режиме так или иначе будет регулярно заниматься сборкой мусора, хотим мы этого или нет. Там где реально нужен non-interruptible код - можно попробовать поиграть с GC.TryStartNoGCRegion(...) и/или переключиться в GC Server Mode.Правдивые числа времени сборки мусора из той же книги: 1. GC в Gen0 - 3ms 2. GC в Gen1 - 6ms (Итого сборка при Gen1 condemned будет занимать 9ms). 3. GC в Gen2 - 30ms (и это далеко не предел). Соответственно надо смотреть в зависимости от требований, надо ли нам на этом заморачиваться или нет.
0
|
|
|
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
|
|
| 23.08.2024, 17:42 | |
|
0
|
|
| 23.08.2024, 17:42 | |
|
Как сделать данный код с помощью OUT\REF ??? Переназначение линейного входа на микрофонный не работает
Не работает ref параметр
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|