28
我知道C++/CLI代码ref和out在C++/CLI
void foo(Bar^% x);
变换成
Void foo(ref Bar x);
什么是成为
Void foo(out Bar x);
的C++/CLI代码?
我知道C++/CLI代码ref和out在C++/CLI
void foo(Bar^% x);
变换成
Void foo(ref Bar x);
什么是成为
Void foo(out Bar x);
的C++/CLI代码?
可以使用OutAttribute:
using namespace System::Runtime::InteropServices;
void foo([Out] Bar^% x);
在C++/CLI中没有这种特定的语法。我认为你可以通过添加OutAttribute
来修改参数。但我不确定它是否达到与C#out
完全相同的语义。
out
的概念大部分仅限于C#。 CLR实际上只看到ref
参数。我相信out
的概念是通过mod opt实现的,大多数语言都忽略它。
是啊,同为VB.NET – 2010-08-18 17:35:50
这是通通过引用语法用'应用到参数OutAttribute'像你说的。它创建与C#'out'参数完全相同的元数据。通过“不......完全相同的语义”是否指的是在C#中参数开始未初始化,并且必须在函数返回之前明确赋值? – 2010-08-19 02:37:38