встретил такую конструкцию в кодяре: [In, Out] byte[] array Передается как параметр. Дайте пожалуйста четкое конкретно объяснение, зачем оно нужно, почему именно оно применяется, и где почитать подробнее.
Ни в шилде, ни в рихтере, ни в английских/русских артикула, ни на msdn'e я не нашел такого.
Обычно параметры с такими атрибутами передаются в неуправляемый код, с дополнительным атрибутом [MarshalAs(UnmanagedType.LPArray)]
, на тот случай, когда допустим необходимо получить длину неуправляемого массива первым вызовом (тогда параметр передается как null
), а перед вторым вызовом. вам необходимо выделить буфер достаточной длины, и после этого передать в данный метод, с ссылкой на длину, т.е. то что вы получили при первом вызове с параметром null
.
Таким образом, такой массив будет передан как указатель на указтель, и в случае передачи null
, будет передан nullptr
(он же 0
или IntPtr.Zero
).
Забыл добавить, что переданная ссылка на массив, будет иметь, или не иметь значения после такого вызова.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть два любых контролаОдин главный, второй дочерний
Допустим, есть List<SomeObject>, где SomeObject- это какой-то объект с десятком полей
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение
Создал объект состоящий из множества частей, как правильно повернуть одну из частей объекта, чтобы она следила за другим объектом, используя...