1

我有一个正在忙于抽象的托管 C++ 类(非常旧的遗留代码)。我需要为该类构建一个 C# 接口。

在托管 C++ 类中,我有以下内容:

property SomeClass^ SomeClass { SomeClass^ get(); }

在接口类(C#)中,正确的声明如下:

SomeClass someClass { get; }

我不确定如何处理参考部分 (^),因为 C# 似乎不允许

ref SomeClass someClass { get; }

是否有必要考虑托管 C++ 函数返回引用,还是在内部处理?或者我只是完全错过了一些东西。

谢谢!

4

1 回答 1

1

是的

    SomeClass someClass { get; }

是正确的。插入符号并不意味着 C# 意义上的“ref”,ref 在 C++/CLI 中拼写为 %。Caret 仅表示“托管指针”,C# 的语法会根据所涉及的类型自动识别出这种区别。

C++/CLI 中的 A^ 在 C# 中始终为 A。

于 2013-06-18T12:37:42.547 回答