Страницы

Поиск по вопросам

вторник, 5 марта 2019 г.

Что означает модификатор [In, Out] в C#?

Смотрел исходники и обнаружил, что один из аргументов метода Read класса FileStream имеет модификатор [In, Out] .
[System.Security.SecuritySafeCritical] // auto-generated public override int Read([In, Out] byte[] array, int offset, int count) { }
Что означает этот модификатор?
Если верить MSDN, то он используется для взаимодействия с COM, но вроде COM взаимодействия в данном методе нет.


Ответ

OutAttribute - показывает, что требуется маршалинг данных из вызываемого объекта в вызывающий.

InAttribute - показывает, маршалинг каких данных необходимо выполнить при передаче от вызывающего объекта — вызываемому, но не обратно.
Данные атрибуты могут быть применены к параметрам. Аргументы InAttribute и OutAttribute являются необязательными. Эти атрибуты поддерживается только для COM-взаимодействия и вызова неуправляемого кода.
Подробнее можно прочитать на MSDN:
OutAttribute - класс InAttribute - класс
Обратите внимание на Заметки и Примеры, перейдя по ссылкам.

Комментариев нет:

Отправить комментарий