|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
||||||
Подобие union в с#09.10.2016, 19:30. Показов 4560. Ответов 25
Метки нет (Все метки)
Привет всем!
Столкнулся с проблемой, в с# нет объединения в структур. Кто как выходит из этой ситуации. Мне необходимо массив byte[] data раскидать по переменным.
Эту структуру написал с использованием marshal, explicite, offset. Но, отладчик не позволяет мне запустить код, жалуется на массив byte[] data, хотя в fieldoffset я всем переменным указал их размеры принудительно.
0
|
||||||
| 09.10.2016, 19:30 | |
|
Ответы с готовыми решениями:
25
Как на C# реализовать подобие union в С++ C++ union на C#
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 09.10.2016, 19:45 | |
|
C++ union in C#
http://stackoverflow.com/quest... in-c-sharp Существует ли аналог union из С++ в С#?
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|
| 09.10.2016, 20:24 [ТС] | |
|
Я написал в теме что все это уже проделал, загвоздка с массивами в структуре... Массивы не работают в структурах с пара етрами offset.
0
|
|
|
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
||
| 09.10.2016, 20:49 | ||
|
0
|
||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
||||||
| 09.10.2016, 20:51 | ||||||
|
А если так
0
|
||||||
|
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
||||||
| 09.10.2016, 21:23 | ||||||
|
Someone007, тогда уж
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|
| 09.10.2016, 21:36 [ТС] | |
|
Оба варианта не работают. Одна и та же ошибка.
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 09.10.2016, 21:49 | |
|
C# array within a struct
http://stackoverflow.com/quest... n-a-struct How to initialize char array in struct http://stackoverflow.com/quest... -in-struct Добавлено через 49 секунд Setting a byte array within a structure https://social.msdn.microsoft.... rplanguage
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 09.10.2016, 22:34 | |
|
bax_tang, вы думаете я не проверил этот вариант первым делом? Там исключение возникает в runtime, а вот мой вариант вполне себе рабочий.
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|
| 09.10.2016, 22:34 [ТС] | |
|
Тоже все не то, читал эти статьи прежде чем про маршал узнал.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 09.10.2016, 22:35 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|||||||
| 09.10.2016, 22:47 [ТС] | |||||||
|
Someone007, раьотает? Пытаюсь передать byte[] data, выдат ошибку, что данные не являются byte*.
Добавлено через 1 минуту Someone007, неявное преобразование типа byte[] в byte*. В случае вашего кода. Добавлено через 4 минуты
0
|
|||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
||||||
| 09.10.2016, 23:49 | ||||||
|
Ну так вы неправильно работаете с указателями, сама структура корректна и работает...
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
||
| 10.10.2016, 09:21 [ТС] | ||
|
В обработчике мы пытаемся ему передать данные типа byte[] Data; Соответственно, он ругается, что Ошибка 1 Использование буферов фиксированного размера, содержащихся в нефиксированных выражениях, невозможно. Попробуйте использовать оператор fixed. НО: Fixed мы уже используем. Как правильно?
0
|
||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
|
| 10.10.2016, 09:27 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|
| 10.10.2016, 09:31 [ТС] | |
|
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
|
| 10.10.2016, 10:17 | |
|
Blastry, ну так ты не пытайся засунуть ссылку на массив в структуру, а руками данные в неё затолкай, как в примере товарища Someone007
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
|
| 10.10.2016, 10:37 [ТС] | |
|
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
||
| 10.10.2016, 10:43 | ||
|
Blastry, а метод в котором данный код размещён помечен ключевым словом unsafe?
Добавлено через 2 минуты
0
|
||
|
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 41
|
||||||||||||
| 10.10.2016, 10:44 [ТС] | ||||||||||||
0
|
||||||||||||
| 10.10.2016, 10:44 | |
|
Помогаю со студенческими работами здесь
20
Существует ли аналог union из С++ в С#? union как определить из какой таблице запись после UNION? Union UNION Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|