ref和out在C ++ / CLI中

时间:2010-08-18 16:19:12

标签: .net c++-cli pass-by-reference

我知道C ++ / CLI代码

void foo(Bar^% x);

转换为

Void foo(ref Bar x);

什么是C ++ / CLI代码

Void foo(out Bar x);

2 个答案:

答案 0 :(得分:41)

您可以使用OutAttribute:

using namespace System::Runtime::InteropServices;    
void foo([Out] Bar^% x); 

答案 1 :(得分:8)

C ++ / CLI中没有这样的特定语法。我认为你可以通过添加OutAttribute来修改参数。但我不确定它是否实现了与C#out完全相同的语义。

out的概念大部分仅限于C#。 CLR实际上只看到ref个参数。 out概念是通过我认为的mod opt实现的,大多数语言都忽略它。