问题
I know that the C++/CLI code
void foo(Bar^% x);
transforms into
Void foo(ref Bar x);
What is the C++/CLI code that becomes
Void foo(out Bar x);
?
回答1:
You can use the OutAttribute:
using namespace System::Runtime::InteropServices;
void foo([Out] Bar^% x);
回答2:
There is no such specific syntax in C++/CLI. I think you can get fairly close by adding the OutAttribute
to modify the parameter. But I'm not sure that achieves the exact same semantics as C# out
.
The concept of out
is for the most part limited to C#. The CLR really only sees ref
parameters. The out
concepts is achieved via a mod opt I believe and most languages ignore it.
来源:https://stackoverflow.com/questions/3514237/ref-and-out-in-c-cli