1 / 1 / 0
Регистрация: 31.08.2014
Сообщений: 8
|
|||||||||||
1 | |||||||||||
Указатель на ссылочный тип31.08.2014, 15:32. Показов 8117. Ответов 7
Метки нет (Все метки)
Доброго времени суток, не могу разобраться с маленькой проблемой:
Имеется класс "Car" (его внутреннее содержимое не важно), мне необходимо объявить указатель на объект этого класса в программе (для того чтобы выполнять манипуляции с ним, неважно какие). Для этого, я в настройках свойств проекта разрешил небезопасный код, затем в методе "Main" объявил переменную-объект этого класса. После чего использовал ключевое слово "unsafe" для указания начала небезопасного кода, и внутри его тела объявил ключевое слово "fixed" (так как без него по теории невозможно объявлять указатели на ссылочный тип, ибо ссылочный тип располагается в куче и может быть удален или перемещен в памяти в любой момент). И вот тут выявляется ошибка компиляции "Невозможно получить адрес или размер или объявить указатель для управляемого типа ("Unsafes.Car")". Вот мой код:
Незнаю как быть, может у вас есть идеи ? В заранее спасибо..
0
|
31.08.2014, 15:32 | |
Ответы с готовыми решениями:
7
Ссылочный тип Тип string, ссылочный или примитивный? Ссылочный тип, возвращать или задавать в методе Как же всё-таки сделать копию Liss<T>, где Т - ссылочный тип (в моем случае -- класс) |
1 / 1 / 0
Регистрация: 31.08.2014
Сообщений: 8
|
||||||
31.08.2014, 17:53 [ТС] | 3 | |||||
Спасибо за ответ, подскажите где почитать инфу про типы typedreference, intptr, а также метод __makeref.
Добавлено через 1 час 0 минут Все, разобрался. Объясню для тех кому вдруг понадобится данная часть работы с языком C#. 1. Язык С# имеет 3 скрытых/недокументированных ключевых слова - __makeref, __reftype, __refvalue; 2. Вся работа с ссылочными данными сводится на работу с этими ключевыми словами. Приведу сразу решение моей задачи:
1
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
31.08.2014, 18:05 | 4 |
дотнет задумывался специально чтоб "не работать с указателями", это не приветствуется
0
|
1 / 1 / 0
Регистрация: 31.08.2014
Сообщений: 8
|
|
31.08.2014, 18:09 [ТС] | 5 |
Согласен, и это очень удобно, но бывают случаи, когда работа с указателями просто необходима, например: повышение производительности скорости работы приложения за счет оптимизации бизнес алгоритма. Там указатели могут хорошо помочь, если хорошо разбираться.
0
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|||||||||||
31.08.2014, 18:09 | 6 | ||||||||||
вот именно что это бессмысленно кроме очень редких исключений, как правило со структурами
вытаскивать указатели на классы это вообще дикость из буханки хлеба с помощью нехитрых манипуляций можно сделать троллейбус
1
|
1 / 1 / 0
Регистрация: 31.08.2014
Сообщений: 8
|
|
31.08.2014, 18:19 [ТС] | 7 |
Просто да, вот ты тоже)) изучаю возможности работы с памятью)
0
|
8 / 8 / 3
Регистрация: 20.05.2012
Сообщений: 174
|
||||||
15.02.2016, 15:55 | 8 | |||||
Извиняюсь за некропостинг, только у меня почти тот же вопрос, что и у автора, только надо получить указатель в формате int.
Имеется внешняя функция, вида
Подскажите, пожалуйста, как можно получить значение указателя в таком формате? Подскажите, пожалуйста, как получить значение указателя на ссылочный тип.
0
|
15.02.2016, 15:55 | |
15.02.2016, 15:55 | |
Помогаю со студенческими работами здесь
8
Когда следует использовать значимый тип, а когда ссылочный? Указатель на объект-тип Ссылочный тип (тип указатель) Комбинированный тип. Ссылочный тип Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|