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