Страницы

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

воскресенье, 12 января 2020 г.

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

#c_sharp #net


Смотрел исходники и обнаружил, что один из аргументов метода Read класса FileStream
имеет модификатор [In, Out] .

[System.Security.SecuritySafeCritical]  // auto-generated
        public override int Read([In, Out] byte[] array, int offset, int count) {
}


Что означает этот модификатор?

Если верить MSDN, то он используется для взаимодействия с COM, но вроде COM взаимодействия
в данном методе нет.
    


Ответы

Ответ 1



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

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

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