2013-06-18 41 views
1

我有一個我忙於抽象的託管C++類(非常舊的遺留代碼)。 我需要爲這個類建立一個C#接口。C#與現有託管C++類的接口

在託管C++類我有以下幾點:

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

在接口類(C#)將下面是正確的聲明:

SomeClass someClass { get; } 

我不確定如何處理由於C#似乎不允許,所以參考部分(^)

ref SomeClass someClass { get; } 

是否需要ta考慮到Managed C++函數返回一個引用,還是會在內部處理? 或者我只是完全錯過了一些東西。

謝謝!

回答

1

SomeClass someClass { get; } 

是正確的。在C#中,插入符號不代表「ref」,ref在C++/CLI中拼寫爲%。 Caret的意思就是「託管指針」,它是C#語法根據所涉及的類型自動計算出來的區別。

C++/CLI中的A ^將始終爲C中的A。

+0

非常感謝您的確認!我很欣賞這些反饋。 –