Ответ 1
Вы можете использовать OutAttribute:
using namespace System::Runtime::InteropServices;
void foo([Out] Bar^% x);
Я знаю, что код С++/CLI
void foo(Bar^% x);
преобразуется в
Void foo(ref Bar x);
Что такое код С++/CLI, который становится
Void foo(out Bar x);
?
Вы можете использовать OutAttribute:
using namespace System::Runtime::InteropServices;
void foo([Out] Bar^% x);
В С++/CLI такого синтаксиса нет. Я думаю, вы можете приблизиться, добавив OutAttribute
, чтобы изменить параметр. Но я не уверен, что достигает той же семантики, что и С# out
.
Понятие out
по большей части ограничено С#. CLR действительно видит только параметры ref
. Концепции out
достигаются с помощью mod opt, я верю, и большинство языков игнорируют его.