Я хочу спросить, есть ли какая-то разница междуИспользования [в, из] в методах
public int Method1([In, Out] byte[] buffer);
и
public int Method2(byte[] buffer);
я наткнулся на http://referencesource.microsoft.com/#mscorlib/system/io/stream.cs,739 и удивляюсь, почему [In, Out]
там?
Этот код очень, очень старый и почти наверняка написан до того, как был сделан маршаллер. Это заняло довольно много времени, они потратили огромные средства на его оптимизацию. Достойные шансы на то, что [Out] был необходим, когда маркерщик pinvoke еще не мог обработать blittable типы. Или программист просто включил его, потому что никогда не ошибается, чтобы быть явным. Вам нужно будет найти программиста Microsoft, который работал над этим 17 лет назад, чтобы получить полностью надежный ответ. Их очень сложно найти. –