Смотрел исходники и обнаружил, что один из аргументов метода 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 - класс
Обратите внимание на Заметки и Примеры, перейдя по ссылкам.
Комментариев нет:
Отправить комментарий