Я подтвердил, что VB.NET <Out()>
заставляет клиента C # требовать out
аргументов, так что, похоже, он фактически одинаков.
Также клиент C # передает свои аргументы с текущими значениями в метод, но это не удивительно, потому что, в отличие от случаев COM или P / Invoke, нет необходимости выполнять маршалинг. (А C # не позволяет напрямую устанавливать свойство с помощью аргумента out
, поэтому, похоже, нет способа узнать, оптимизирует ли C # предыдущее ненужное назначение.)
Так что, похоже, ответ заключается в том, что это поможет возможным будущим клиентам C # использовать код, и если джиттер когда-либо настроит эквивалент C #, он будет делать то же самое и здесь. Хотя такие языки, как VB, существуют, они мало что могут сделать, потому что они сами не уважают атрибут Out
.