Ale*_* C. 29 .net c++-cli pass-by-reference
我知道C++/CLI代码
void foo(Bar^% x);
Run Code Online (Sandbox Code Playgroud)
变成了
Void foo(ref Bar x);
Run Code Online (Sandbox Code Playgroud)
什么是C++/CLI代码
Void foo(out Bar x);
Run Code Online (Sandbox Code Playgroud)
?
Yoc*_*mer 41
您可以使用OutAttribute:
using namespace System::Runtime::InteropServices;
void foo([Out] Bar^% x);
Run Code Online (Sandbox Code Playgroud)
C++/CLI中没有这样的特定语法.我认为你可以通过添加OutAttribute修改参数来相当接近.但我不确定它是否实现了与C#完全相同的语义out.
这个概念out在很大程度上仅限于C#.CLR真的只看到ref参数.该out概念通过MOD选择,我相信大多数语言忽略它实现.