1

I have a Managed C++ class (Very old legacy code) that I am busy abstracting. I need to build a C# interface to the class.

In the Managed C++ class I have the following:

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

In the interface class (C#) would the following be the correct declaration:

SomeClass someClass { get; }

I'm unsure how to handle the reference part (^), since C# doesn't seem to allow

ref SomeClass someClass { get; }

Would it be necessary to take into account that the Managed C++ function returns a reference, or would it be handled internally? Or am I just missing something completely.

Thanks!

4

1 に答える 1

1

はい

    SomeClass someClass { get; }

正しい。キャレットは C# の意味での "ref" を意味しません。ref は C++/CLI では % と綴られています。キャレットは「マネージ ポインター」を意味するだけであり、関連する型に基づいて C# の構文によって自動的に区別されます。

C++/CLI の A^ は、C# では常に A になります。

于 2013-06-18T12:37:42.547 に答える