ссылка и выход в C ++ / CLI - PullRequest
       24

ссылка и выход в C ++ / CLI

29 голосов
/ 18 августа 2010

Я знаю, что код C ++ / CLI

void foo(Bar^% x);

превращается в

Void foo(ref Bar x);

Что такое код C ++ / CLI, который становится

Void foo(out Bar x);

Ответы [ 2 ]

41 голосов
/ 13 июня 2011

Вы можете использовать OutAttribute:

using namespace System::Runtime::InteropServices;    
void foo([Out] Bar^% x); 
8 голосов
/ 18 августа 2010

Нет такого специфического синтаксиса в C ++ / CLI.Я думаю, что вы можете подойти довольно близко, добавив OutAttribute для изменения параметра.Но я не уверен, что достигает той же семантики, что и C # out.

Концепция out по большей части ограничена C #.CLR действительно видит только ref параметров.Я полагаю, что концепция out достигается через мод, и большинство языков его игнорируют.

...