C ++到C#端口的问题:如何处理以double *作为参数的方法?

问题描述 投票:1回答:7

我正在将C ++库移植到C#,并且遇到了一些使用double *指针作为参数的方法。处理此问题的最佳方法是什么?也许修改调用代码,使其不传递指针?我只是将代码包装在“不安全”的块中,并设置编译器的/ unsafe标志,但是我不能在方法签名中进行此操作。

c# c++ pointers porting
7个回答
3
投票

也许在参数上使用ref(或out)可能就足够了,或者如果需要使用double[]处理这些数组,则可以使用]。>

也许发布方法定义,以使您更清楚真正需要什么。


1
投票

我假设您希望使用托管安全代码


1
投票

可能转换为ref double或out double或double []。应该是哪个取决于代码的语义。 C ++ double *实际上可以表示很多东西。


0
投票

您可以将函数标记为unsafe并使用/ unsafe


0
投票

传递指针的地方,您只是将默认的[[传递值]]机制更改为传递引用


0
投票
您将做什么取决于指针的使用方式。如果指针在那里,以便调用代码可以传递double的数组,则使该方法接受double[]。如果指针在那里,以便被调用的代码可以修改调用者的double变量的值,那么您有两种选择:

0
投票
取决于函数如何使用指针。您实际上没有提供足够的信息来给出可靠的答案,但是无论如何,我都会尝试一下。
© www.soinside.com 2019 - 2024. All rights reserved.